Linux性能测试与调优的15条常用命令

一、CPU性能评估

通过下面的命令能了解到CPU是否出现性能瓶颈,再结合top、ps等命令进一步检查,即可定位到那些进程导致CPU负载过大
vmstat命令:查看CPU负载

  • [oracle@oracle backup]$ vmstat 2 3 # 间隔2s,打印3次
  • procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 328088 65340 26020 745768 0 1 4 20 58 64 0 0 100 0 0 0 0 328088 65340 26020 745764 0 0 0 0 126 245 0 0 100 0 0 0 0 328088 65340 26020 745768 0 0 2 20 137 250 0 0 99 1 0




sar命令:统计CPU性能
场景:在一个多CPU的系统中,CPU的整体使用率不高,但是系统应用响应缓慢。
结论:单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其他请求,而其他的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生。
sar -P 0 3 5 :对第一个CPU进行统计

[oracle@oracle backup]$ sar -P 0 3 5  显示CPU利用率,间隔3s,显示5次Linux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)02:40:21 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle02:40:24 AM       0      0.00      0.00      2.13      0.00      0.00     97.8702:40:27 AM       0      0.00      0.00      0.33      0.00      0.00     99.6702:40:30 AM       0      0.00      0.00      0.33      0.33      0.00     99.3302:40:33 AM       0      0.33      0.00      0.33      0.00      0.00     99.3302:40:36 AM       0      0.00      0.00      0.33      0.00      0.00     99.67Average:          0      0.07      0.00      0.68      0.07      0.00     99.19




iostat命令:查看CPU使用情况

[oracle@oracle backup]$ iostat -cLinux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle           0.06    0.00    0.08    0.18    0.00   99.68




uptime命令:1、5、15分钟平均负载
经验:8核CPU,load average三个值长期大于8,说明负载很高,会影响系统性能。

  • [oracle@oracle backup]$ uptime 02:42:25 up 6 days, 23:41,  1 user,  load average: 0.00, 0.00, 0.00




二、内存性能评估


free命令:查看内存使用情况
经验:可用内存/物理内存<20%,说明内存紧缺,需要增加内存

  • [oracle@oracle backup]$ free -m -m 以MB为单位,-s 时间段内不间断监控 total used free shared buffers cachedMem: 980 906 74 0 26 716-/+ buffers/cache: 163 817Swap: 2495 321 2174




vmstat命令:监控内存

  • [oracle@oracle backup]$ vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 1 329148 76376 27440 733380 0 1 4 20 58 64 0 0 100 0 0




sar -r命令:监控内存

[oracle@oracle backup]$ sar -rLinux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit12:10:01 AM     72404    932008     92.79     14544    736452   1905844     53.5312:20:01 AM     71288    933124     92.90     15528    736612   1905844     53.5312:30:01 AM     70668    933744     92.96     16480    736664   1905844     53.5312:40:01 AM     69676    934736     93.06     17464    736724   1905848     53.5312:50:01 AM     68560    935852     93.17     18424    736812   1905848     53.5301:00:01 AM     67568    936844     93.27     19392    736840   1905848     53.5301:10:01 AM     68764    935648     93.15     20368    736784   1905848     53.5301:20:01 AM     67648    936764     93.26     21348    736920   1905852     53.53




三、磁盘I/O性能评估
sar -d命令:统计磁盘I/O状态经验:

  • 1、正常svctm<await。
  • 2、svctm接近await表示几乎没有I/O等待,性能很好
  • 3、cpu/内存复合/过多请求都会使svctm增加
  • 4、%util接近100%,表示I/O满负荷。
[oracle@oracle backup]$ sar -dLinux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)12:00:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util12:10:01 AM    dev8-0      0.37      5.67      3.50     24.65      0.00      3.38      2.31      0.0912:10:01 AM   dev8-16      1.75      1.54     44.05     26.00      0.00      2.46      1.89      0.3312:10:01 AM   dev8-32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.0012:10:01 AM   dev8-48      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.0012:10:01 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.0012:10:01 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00




iostat -d命令:

[oracle@oracle backup]$  iostat -dx /dev/sda3Linux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %utilsda3              0.03     0.16    0.01    0.00     0.29     1.32   186.07     0.00   63.32    6.07  182.97   8.40   0.01





四、网络性能评估


ping命令:检测网络连通
netstat命令:-i 查看网络接口信息,-r 检测系统路由表信息
sar -n命令:显示系统网络运行状态

[oracle@oracle backup]$ sar -n DEV 2 3   #  DEV:网络接口,EDEV:网络错误统计数据,SOCK:套接字信息,FULL:显示所有Linux 2.6.32-431.el6.x86_64 (oracle)    03/17/2020      _x86_64_        (1 CPU)
02:49:05 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s02:49:07 AM lo 1.01 1.01 0.05 0.05 0.00 0.00 0.0002:49:07 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00




traceroute命令:跟踪数据包传输路径
nslookup命令:判断DNS解析信息


五、动态监控性能

[oracle@oracle backup]$ watch -n 3 -d free  # -n 重复执行时间,-d 高亮显示变动Every 3.0s: free             Tue Mar 17 02:50:44 2020             total       used       free     shared    buffers     cachedMem:       1004412     930144      74268          0      28516     733728-/+ buffers/cache:     167900     836512Swap:      2555888     329132    2226756




Linux性能测试与调优的15条常用命令插图

聚焦技术与人文,分享干货,共同成长
更多内容请关注“数据与人”

Linux性能测试与调优的15条常用命令插图1

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注