1. 程式人生 > >linux 性能測試與調優

linux 性能測試與調優

inux 2.3 color 0.10 ilo x86 average 0.00 定位

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 114428
120 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 2408
97 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]
/* */ ~]# sar Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) 19時10分28秒 LINUX RESTART [[email protected] ~]# sar -p 0 3 5 用法: sar [ 選項 ] [ <時間間隔> [ <次數> ] ] 選項: [ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ] [ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ] [ -I { <中斷> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ] [ -m { <關鍵詞> [,...] | ALL } ] [ -n { <關鍵詞> [,...] | ALL } ] [ -j { ID | LABEL | PATH | UUID | ... } ] [ -f [ <文件名> ] | -o [ <文件名> ] | -[0-9]+ ] [ -i <間隔> ] [ -s [ <時:分:秒> ] ] [ -e [ <時:分:秒> ] ] [[email protected] ~]# sar -P 0 3 5 Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) 11時28分36秒 CPU %user %nice %system %iowait %steal %idle 11時28分39秒 0 2.36 0.00 0.67 0.00 0.00 96.97 11時28分42秒 0 2.35 0.00 1.34 0.00 0.00 96.31 11時28分45秒 0 2.69 0.00 1.01 0.00 0.00 96.30 11時28分48秒 0 10.03 0.00 3.11 0.00 0.00 86.85 11時28分51秒 0 10.65 0.00 3.09 1.72 0.00 84.54 平均時間: 0 5.57 0.00 1.83 0.34 0.00 92.26 [[email protected] ~]# sar -u 3 5 Linux 3.10.0-327.el7.x86_64 (zq) 2017年05月20日 _x86_64_ (1 CPU) 11時29分28秒 CPU %user %nice %system %iowait %steal %idle 11時29分31秒 all 2.02 0.00 1.35 0.00 0.00 96.63 11時29分34秒 all 3.02 0.00 3.02 0.00 0.00 93.96 11時29分37秒 all 2.36 0.00 1.35 0.00 0.00 96.28 11時29分40秒 all 1.34 0.00 1.00 0.00 0.00 97.66 11時29分43秒 all 2.34 0.00 1.67 0.00 0.00 95.99 平均時間: all 2.22 0.00 1.68 0.00 0.00 96.10

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 性能測試與調優