linux 性能測試與調優
CPU 性能評估
通過下面命令能了解到cpu是否出現性能瓶頸,再結合top、ps等命令進一步檢查,就可以定位到哪些進程導致cpu負載過大。
vmstat查看cpu負載
[[email protected] ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 80 114428120 332868 0 0 2864 106 682 1246 14 20 41 25 0 [[email protected] ~]# vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 5 0 80 114984 120 333164 0 0 240897 605 1091 12 17 50 21 0 0 0 80 114464 120 333164 0 0 0 0 110 194 3 1 96 0 0 0 0 80 114464 120 333164 0 0 0 0 99 182 2 2 96 0 0
sar統計cpu性能
在一個多cpu的系統中,cpu的整體使用率不高,但是系統響應緩慢,結果就是,單線程只使用一個cpu,導致這個cpu利用率百分之百,無法處理其他請求,而其他cpu閑置,導致整體cpu使用率不高,應用緩慢現象發生。
[[email protected]
iostat查看cpu使用情況
[[email protected] ~]# iostat - Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 4.03 0.12 4.68 5.13 0.00 86.04 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 15.46 575.49 24.08 479490 20062 sdc 0.14 0.62 0.00 520 0 sdd 0.18 1.25 0.00 1044 0 sdb 0.15 0.92 0.00 764 0 scd0 0.02 0.06 0.00 54 0 dm-0 0.10 0.67 0.00 556 0 [[email protected] ~]# iostat -l 用法: iostat [ 選項 ] [ <時間間隔> [ <次數> ] ] 選項: [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ [ -T ] -g <用戶組名> ] [ -p [ <設備> [,...] | ALL ] ] [ <設備> [...] | ALL ] [[email protected] ~]# iostat -c Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3.96 0.11 4.52 4.89 0.00 86.51
uptime查看負載
[[email protected] ~]# uptime 11:34:07 up 17 min, 2 users, load average: 0.06, 0.12, 0.13 #如果三個平均值大於cpu核數則負載很高
內存性能評估
free查看內存使用情況
[[email protected] ~]# free total used free shared buff/cache available Mem: 1001332 546424 113316 8416 341592 279120 Swap: 2047996 80 2047916 [[email protected] ~]# free -p free:無效選項 -- p Usage: free [options] Options: -b, --bytes show output in bytes -k, --kilo show output in kilobytes -m, --mega show output in megabytes -g, --giga show output in gigabytes --tera show output in terabytes -h, --human show human-readable output --si use powers of 1000 not 1024 -l, --lohi show detailed low and high memory statistics -t, --total show total for RAM + swap -s N, --seconds N repeat printing every N seconds -c N, --count N repeat printing N times, then exit -w, --wide wide output --help display this help and exit -V, --version output version information and exit For more details see free(1). [[email protected] ~]# free -m total used free shared buff/cache available Mem: 977 533 110 8 333 272 Swap: 1999 0 1999
vmstat 和 sar -r 都可以監控內存
[[email protected] ~]# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 80 112032 120 342700 0 0 373 16 177 292 3 3 90 3 0 [[email protected] ~]# sar -r Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) 19時10分28秒 LINUX RESTART 11時20分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 11時30分01秒 111912 889420 88.82 120 270688 2353808 77.19 382172 199608 0 平均時間: 111912 889420 88.82 120 270688 2353808 77.19
磁盤i/o性能評估
sar -d統計磁盤io狀態
[[email protected] ~]# sar -d Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) 19時10分28秒 LINUX RESTART 11時20分01秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util #正常svctm<await 11時30分01秒 dev8-0 0.82 27.24 8.62 43.81 0.03 34.70 6.77 0.55 11時30分01秒 dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 #svctm接近await沒有io等待,性能很好 11時30分01秒 dev8-48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時30分01秒 dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00#cpu內存過多會使svctm增加
11時30分01秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時30分01秒 dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00#%util接近100%表示滿負荷 11時40分02秒 dev8-0 0.24 4.99 1.63 27.47 0.01 41.46 11.95 0.29 11時40分02秒 dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時40分02秒 dev8-48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時40分02秒 dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時40分02秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 11時40分02秒 dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: dev8-0 0.53 16.12 5.12 40.09 0.02 36.24 7.95 0.42 平均時間: dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: dev8-48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均時間: dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
iostat -d
[[email protected] ~]# iostat -d #查看磁盤 Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 7.15 262.94 11.39 480898 20839 sdc 0.06 0.28 0.00 520 0 sdd 0.08 0.57 0.00 1044 0 sdb 0.07 0.42 0.00 764 0 scd0 0.01 0.03 0.00 54 0 dm-0 0.05 0.30 0.00 556 0
linux 性能測試與調優