首页 > 代码库 > linux 性能测试与调优

linux 性能测试与调优

CPU  性能评估

通过下面命令能了解到cpu是否出现性能瓶颈,再结合top、ps等命令进一步检查,就可以定位到哪些进程导致cpu负载过大。

vmstat查看cpu负载

[root@zq ~]# 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
[root@zq ~]# 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使用率不高,应用缓慢现象发生。

[root@zq ~]# sar 
Linux 3.10.0-327.el7.x86_64 (zq)     2017年05月20日     _x86_64_    (1 CPU)

19时10分28秒       LINUX RESTART
[root@zq ~]# 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 [ <时:分:秒> ] ]
[root@zq ~]# 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
[root@zq ~]# 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使用情况

[root@zq ~]# 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

[root@zq ~]# iostat -l
用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
选项:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <用户组名> ] [ -p [ <设备> [,...] | ALL ] ]
[ <设备> [...] | ALL ]
[root@zq ~]# 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查看负载

[root@zq ~]# uptime 
 11:34:07 up 17 min,  2 users,  load average: 0.06, 0.12, 0.13   #如果三个平均值大于cpu核数则负载很高

 

 

内存性能评估

free查看内存使用情况

[root@zq ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1001332      546424      113316        8416      341592      279120
Swap:       2047996          80     2047916
[root@zq ~]# 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).
[root@zq ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         533         110           8         333         272
Swap:          1999           0        1999

vmstat 和 sar -r 都可以监控内存

[root@zq ~]# 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
[root@zq ~]# 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状态

[root@zq ~]# 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

[root@zq ~]# 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 性能测试与调优