??????????????????? Brendan Gregg?? ???? Oracle/Linux????????????????????
??????????????????????????Linux??????????????????????????????
??????Netflix?????????????EC2 Linux????????з?????????????????????????????????????а????????????Atlas??????????????????Vector???????Щ??????????????????????????????????????Linux??????????Щ?????Linux????????????????
???????????????Netflix Performance Engineering??????t???????Linux????????й???????????????????60?????????£?
?????????60??……
????????????10?????????????60????????????????????????????????д?????????????????????????????????????????????????????“????”???????????????????????????????????е???????????????????
????uptime
????dmesg | tail
????vmstat 1
????mpstat -P ALL 1
????pidstat 1
????iostat -xz 1
????free -m
????sar -n DEV 1
????sar -n TCP??ETCP 1
????top
??????Щ??????????sysstat????????????mpstat?? pidstat?? iostat??sar???e????????????sysstat????? ??Щ?????????????????????????USE??????????????????λ??????????????????????????????????CPU????棬???????????????????????????????????????????????μ?????????????????????????????????????????????????????USE??????????????????????????utilization?????????saturation????????error????
?????????????????????????????????????Щ?????????????????????????????????man page??
????1. uptime
????$ uptime
????23:51:26 up 21:31??  1 user??  load average: 30.02?? 26.43?? 19.02
????????????????????е???????????????????????????????????????????Linux?????Щ??????????????????????CPU??????????????????uninterruptible I/O??????????I/O???????????????????????????????????????????????????????д??????????Э????????????????????????檔
???????????????????1?????5?????15?????????????????????????????????????????????????????????????????????????????????????????????1??????????????15?????????????????????????????
????????????????У???????????????????????1????????30????15?????????19????????????????????????п??????CPU???????????е??3?????4??????——vmstat??mpstat——???????????????????????????
????2. dmesg | tail
????$ dmesg | tail
????[1880957.563150] perl invoked oom-killer: gfp_mask=0x280da?? order=0?? oom_score_adj=0
????[...]
????[1880957.563400] Out of memory: Kill process 18694 (perl) score 246 or sacrifice child
????[1880957.563408] Killed process 18694 (perl) total-vm:1972392kB?? anon-rss:1953348kB?? file-rss:0kB
????[2320864.954447] TCP: Possible SYN flooding on port 7001. Dropping request.  Check SNMP counters.
?????????????????μ?10?????????????е????????????????????????????????????????????????????????????????о??????ж???TCP???????檔
????????????????????dmesg?????????
????3. vmstat 1
????$ vmstat 1
????procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----
????r  b swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
????34  0    0 200889792  73708 591828    0    0     0     5    6   10 96  1  3  0  0
????32  0    0 200889920  73708 591860    0    0     0   592 13284 4282 98  1  1  0  0
????32  0    0 200890112  73708 591860    0    0     0     0 9501 2154 99  1  0  0  0
????32  0    0 200889568  73712 591856    0    0     0    48 11900 2459 99  0  0  0  0
????32  0    0 200890208  73712 591860    0    0     0     0 15898 4840 98  1  1  0  0
????^C
????vmstat(8)????“virtual memory stat”????????????????????BSD?????У??????????????????????????????????????????????????????
??????????1???vmstat???????????????????????????????????????????????vmstat?????????????????????????????????????????????????????????????????????У????????漸?е??????
?????????????У?
????r?????CPU?????????????????????ж?CPU?????????????????I/O?????????r?????CPU?????ζ??????
????free?????е????????????????????????ж???λ???????????????????????????????7??????free -m???????????????????????????
????si??so??Swap-ins??Swap-outs???????????????ζ??????????????????y?????????????
????us??sy??id??wa??st????????????CPU????e????????????user time??system time?????????????????idle??wait I/O??steal time?????????????????????????Xen?????豸??????isolated driver domain???????????????
??????????us??sy??????????????CPU??????μ????????????????wait I/O??ζ??????????????????????????????CPU????У???????????????I/O???????????wait I/O????CPU???е??????????????????????CPU???е???????
????I/O?????????????????????????20%????????????????y?????????????????I/O?????????
????????????????У?CPU????????仨?????????棬??ζ?????????????????????????????CPU??????????90%?????????????????????“r”?У?????????????
????4. mpstat -P ALL 1
????$ mpstat -P ALL 1
????Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)
????07:38:49 PM  CPU   %usr  %nice   %sys %iowait   %irq  %soft  %steal  %guest  %gnice  %idle
????07:38:50 PM  all  98.47   0.00   0.75    0.00   0.00   0.00    0.00    0.00    0.00   0.78
????07:38:50 PM    0  96.04   0.00   2.97    0.00   0.00   0.00    0.00    0.00    0.00   0.99
????07:38:50 PM    1  97.00   0.00   1.00    0.00   0.00   0.00    0.00    0.00    0.00   2.00
????07:38:50 PM    2  98.00   0.00   1.00    0.00   0.00   0.00    0.00    0.00    0.00   1.00
????07:38:50 PM    3  96.97   0.00   0.00    0.00   0.00   0.00    0.00    0.00    0.00   3.03
????[...]
?????????????????CPU???????e??????????????????CPU???????????????????????μ??CPU??????ζ???????????е?????????????
????5. pidstat 1
????$ pidstat 1
????Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)
????07:41:02 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
????07:41:03 PM     0         9    0.00    0.94    0.00    0.94     1  rcuos/0
????07:41:03 PM     0      4214    5.66    5.66    0.00   11.32    15  mesos-slave
????07:41:03 PM     0      4354    0.94    0.94    0.00    1.89     8  java
????07:41:03 PM     0      6521 1596.23    1.89    0.00 1598.11    27  java
????07:41:03 PM     0      6564 1571.70    7.55    0.00 1579.25    28  java
????07:41:03 PM 60004     60154    0.94    4.72    0.00    5.66     9  pidstat
????07:41:03 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
????07:41:04 PM     0      4214    6.00    2.00    0.00    8.00    15  mesos-slave
????07:41:04 PM     0      6521 1590.00    1.00    0.00 1591.00    27  java
????07:41:04 PM     0      6564 1573.00   10.00    0.00 1583.00    28  java
????07:41:04 PM   108      6718    1.00    0.00    0.00    1.00     0  snmp-pass
????07:41:04 PM 60004     60154    1.00    4.00    0.00    5.00     9  pidstat
????^C
????pidstat???????top??????top?????????????????????pidstat???????????????????????檔?????????????????????????????????????????????????????鱨???С?
??????????????????CPU?????????????java???????%CPU?????????CPU??????????????1591%??ζ??java?????????????16??CPU??
????6. iostat -xz 1
????$ iostat -xz 1
????Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015  _x86_64_ (32 CPU)
????avg-cpu:  %user   %nice %system %iowait  %steal   %idle
????73.96    0.00    3.73    0.03    0.06   22.21
????Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
????xvda        0.00     0.23    0.21    0.18     4.52     2.08    34.37     0.00    9.98   13.80    5.42   2.44   0.09
????xvdb        0.01     0.00    1.02    8.94   127.97   598.53   145.79     0.00    0.43    1.78    0.28   0.25   0.25
????xvdc        0.01     0.00    1.02    8.86   127.79   595.94   146.50     0.00    0.45    1.82    0.30   0.27   0.26
????dm-0        0.00     0.00    0.69    2.32    10.47    31.69    28.01     0.01    3.23    0.71    3.98   0.13   0.04
????dm-1        0.00     0.00    0.00    0.94     0.01     3.78     8.00     0.33  345.84    0.04  346.81   0.01   0.00
????dm-2        0.00     0.00    0.09    0.07     1.35     0.36    22.50     0.00    2.55    0.23    5.62   1.78   0.03
????[...]
????^C
??????????????ū????豸?????????????????????????????????????????????
????r/s??w/s??rkB/s??wkB/s???????????豸????????д??????????KB????д??KB???????????????????????????????????????????????????????
????await??I/O???????????????λ???????????I/O???????????????????????м??????????????????????????????????????ζ???豸????????????豸????????
????avgqu-sz????????豸?????????????????1????豸??????????????????Щ?豸??????д????????????????????????????豸??
????%util???豸????????????????豸????????????????????????λ??????60%?????????????????????await?п??????????????????豸???????????????ζ??????
???????????洢?豸?????????????????????????豸?????????????????ζ??I/O???
???????μ??????disk I/O????????????????????I/O????????????????????read-ahead????д???壨buffering for writes??????????????????????????????
????7. free -m
????$ free -m
????total       used       free     shared    buffers     cached
????Mem:        245998      24545     221453         83         59        541
????-/+ buffers/cache:      23944     222053
????Swap:            0          0          0
?????????????????
????buffers????????豸I/O???????????
????cached??????????????????
???????????????0?????????????????I/O?????????iostat???????????????????????????????????????ж??кü?M???
???????????У?-/+ buffers/cache???????????????????Щ??Linux???????ò??????????????棬?????????????????????·?????????????????????????????????????????棬?????????????????????????????????????? ???????????????????? linuxatemyram??
???????????Linux??????ZFS?????????????Щ??????????????????????????????ZFS???????????????治????free -m?????????????????ж????????????????????涼????ZFS??????????
????8. sar -n DEV 1
????$ sar -n DEV 1
????Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015     _x86_64_    (32 CPU)
????12:16:48 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
????12:16:49 AM      eth0  18763.00   5032.00  20686.42    478.30      0.00      0.00      0.00      0.00
????12:16:49 AM        lo     14.00     14.00      1.36      1.36      0.00      0.00      0.00      0.00
????12:16:49 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
????12:16:49 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
????12:16:50 AM      eth0  19763.00   5101.00  21999.10    482.56      0.00      0.00      0.00      0.00
????12:16:50 AM        lo     20.00     20.00      3.25      3.25      0.00      0.00      0.00      0.00
????12:16:50 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
????^C
??????????????????????????????????????rxkB/s??txkB/s???????????????????????????У?eth0???????????22Mbytes/s?????176Mbits/sec???????1Gbit/sec??
???????????汾?л?????%ifutil????豸???????????????????е?????????????????????Brendan??nicstat?????????????nicstat??sar?????????????????????????????????????????????0.00????
????9. sar -n TCP??ETCP 1
????$ sar -n TCP??ETCP 1
????Linux 3.13.0-49-generic (titanclusters-xxxxx)  07/14/2015    _x86_64_    (32 CPU)
????12:17:19 AM  active/s passive/s    iseg/s    oseg/s
????12:17:20 AM      1.00      0.00  10233.00  18846.00
????12:17:19 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
????12:17:20 AM      0.00      0.00      0.00      0.00      0.00
????12:17:20 AM  active/s passive/s    iseg/s    oseg/s
????12:17:21 AM      1.00      0.00   8359.00   6039.00
????12:17:20 AM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
????12:17:21 AM      0.00      0.00      0.00      0.00      0.00
????^C
???????????????Щ???TCP???????????а?????
????active/s?????????????TCP????????????concept()???????
????passive/s????????????TCP????????????accept()???????
????retrans/s?????TCP???????
????????????????active???????????????passive?????????????????????????????????????????????????????????????????????????????????????????????????磬?????localhost??localhost???????
?????????????????????????????????????????????磨???繫?????????????п???????????????????????????????????????У?????????????μ?TCP?????
????10. top
????$ top
????top - 00:15:40 up 21:56??  1 user??  load average: 31.09?? 29.87?? 29.92
????Tasks: 871 total??   1 running?? 868 sleeping??   0 stopped??   2 zombie
????%Cpu(s): 96.8 us??  0.4 sy??  0.0 ni??  2.7 id??  0.1 wa??  0.0 hi??  0.0 si??  0.0 st
????KiB Mem:  25190241+total?? 24921688 used?? 22698073+free??    60448 buffers
????KiB Swap:        0 total??        0 used??        0 free.   554208 cached Mem
????PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
????20248 root      20   0  0.227t 0.012t  18748 S  3090  5.2  29812:58 java
????4213 root      20   0 2722544  64640  44232 S  23.5  0.0 233:35.37 mesos-slave
????66128 titancl+  20   0   24344   2332   1172 R   1.0  0.0   0:00.07 top
????5235 root      20   0 38.227g 547004  49996 S   0.7  0.2   2:02.74 java
????4299 root      20   0 20.015g 2.682g  16836 S   0.3  1.1  33:14.42 java
????1 root      20   0   33620   2920   1496 S   0.0  0.0   0:03.82 init
????2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd
????3 root      20   0       0      0      0 S   0.0  0.0   0:05.35 ksoftirqd/0
????5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
????6 root      20   0       0      0      0 S   0.0  0.0   0:06.94 kworker/u256:0
????8 root      20   0       0      0      0 S   0.0  0.0   2:38.05 rcu_sched
????top????????????????????????????????????????????????????????????????????Щ????
????????????????????????????????????top???????????????vmstat??pidstat????????????????????????????????????????????????????????????top???????Ctrl-s?????Ctrl-q????????????Щ????????????????μ?????С?
???????????…
?????к??????????????????????????????Brendan??2015??Velocity??????Linux Performance Tools tutorial???г?????40????????????????????????????????????????????profile??????????tracing????????檔