优化Linux系统性能
发布时间:2022-03-31 13:05:02
CPU性能评估
通过下面的命令能了解到CPU是否出现性能瓶颈,再结合top、ps等命令进一步检查,即可定位到那些进程导致CPU负载过大
vmstat命令:查看CPU负载。
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 0 233972 0 981568 0 0 190 52 1050 1946 2 1 97 0 0
1 0 0 233824 0 981568 0 0 0 0 2009 3804 1 1 98 0 0
0 0 0 233824 0 981568 0 0 0 194 2058 3908 1 1 98 0 0
sar命令:统计CPU性能。
场景:在一个多CPU的系统中,CPU的整体使用率不高,但是系统应用响应缓慢。 结论:单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其他请求,而其他的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生。
# sar -P 0 3 5 # 对第一个CPU进行统计
# sar -u 3 5 # 显示CPU利用率,间隔3s,显示5次
14时30分48秒 CPU %user %nice %system %iowait %steal %idle
14时30分51秒 all 4.68 0.00 1.84 0.17 0.00 93.31
14时30分54秒 all 5.05 0.00 1.35 0.00 0.00 93.60
14时30分57秒 all 3.33 0.00 1.50 0.17 0.00 95.00
14时31分00秒 all 0.34 0.00 0.84 0.00 0.00 98.83
14时31分03秒 all 5.18 0.00 1.84 0.00 0.00 92.99
平均时间: all 3.72 0.00 1.47 0.07 0.00 94.74
# 查看前10占用内存的进程(#top 然后输入M,也可以实现内存排序的; 输入P是CPU)
# ps aux|sort -rn -k +4|head
1000 2719 0.4 25.9 3219040 994616 pts/0 SLl+ 10:41 2:17 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-2847886588888035717 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Des.cgroups.hierarchy.override=/ -Xms512m -Xmx512m -XX:MaxDirectMemorySize=268435456 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/usr/share/elasticsearch/config -Des.distribution.flavor=default -Des.distribution.type=docker -Des.bundled_jdk=true -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -Ebootstrap.memory_lock=true -Ediscovery.type=single-node
systemd+ 2276 0.2 14.0 1761576 538636 ? Ssl 10:41 0:58 mysqld --default-authentication-plugin=mysql_native_password
systemd+ 2224 0.5 3.9 1629336 150924 pts/0 Ssl+ 10:41 2:36 mongod --config /etc/mongo/mongod.conf
33 2933 0.0 1.8 266812 71288 ? S 10:41 0:10 php-fpm: pool www
33 2909 0.0 1.7 269056 66620 ? S 10:41 0:09 php-fpm: pool www
33 2904 0.0 1.7 335708 65116 ? S 10:41 0:11 php-fpm: pool www
33 2936 0.0 1.6 333236 61548 ? S 10:41 0:10 php-fpm: pool www
33 2924 0.0 1.6 260796 62888 ? S 10:41 0:09 php-fpm: pool www
33 2912 0.0 1.6 261880 61684 ? S 10:41 0:11 php-fpm: pool www
33 2934 0.0 1.5 265928 60228 ? S 10:41 0:10 php-fpm: pool www
#top -Hp 2719 这个命令进一步查看这个进程的情况
iostat命令:查看CPU使用情况
# iostat -c
Linux 4.18.0-240.10.1.el8_3.x86_64 (iZ2zeb7o9hu1q8bvuj8olgZ) 2022年03月31日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.77 0.01 1.17 0.45 0.00 96.60
uptime命令:1、5、15分钟平均负载
经验:8核CPU,load average三个值长期大于8,说明负载很高,会影响系统性能。
# uptime
14:35:05 up 2:01, 1 user, load average: 0.18, 0.11, 0.03
内存性能评估
free命令:查看内存使用情况
经验:可用内存/物理内存<20%,说明内存紧缺,需要增加内存
free -m
total used free shared buff/cache available
Mem: 3736 2763 110 39 862 542
Swap: 0 0 0
vmstat命令:监控内存
sar -r命令:监控内存
磁盘I/O性能评估
sar -d命令:统计磁盘I/O状态
# sar -d
Linux 4.18.0-240.10.1.el8_3.x86_64 (iZ2zeb7o9hu1q8bvuj8olgZ) 2022年03月31日 _x86_64_ (2 CPU)
00时00分49秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
00时10分49秒 dev253-0 1.53 9.16 19.61 18.77 0.00 2.89 1.17 0.18
00时20分49秒 dev253-0 1.20 0.02 22.17 18.49 0.00 2.25 0.59 0.07
00时30分49秒 dev253-0 1.17 1.01 15.64 14.30 0.00 2.54 1.04 0.12
00时40分49秒 dev253-0 1.13 0.00 22.30 19.79 0.00 2.36 0.73 0.08
00时50分49秒 dev253-0 3.37 2.29 98.30 29.83 0.01 2.85 0.73 0.25
01时00分49秒 dev253-0 4.62 9.83 203.96 46.24 0.01 2.58 1.08 0.50
01时10分49秒 dev253-0 4.09 47.89 101.36 36.49 0.01 2.99 1.20 0.49
01时20分49秒 dev253-0 3.57 1.34 161.84 45.64 0.01 2.14 1.03 0.37
01时30分49秒 dev253-0 5.98 411.39 49.33 77.00 0.05 8.94 1.69 1.01
01时40分49秒 dev253-0 1.09 3.99 14.56 17.09 0.00 2.27 0.75 0.08
01时50分49秒 dev253-0 1.49 17.36 16.31 22.55 0.00 2.36 0.88 0.13
02时00分49秒 dev253-0 1.07 0.04 8.46 7.95 0.00 2.12 0.64 0.07
02时10分49秒 dev253-0 2.14 22.41 10.15 15.25 0.00 2.09 0.91 0.19
02时20分49秒 dev253-0 1.11 0.03 15.59 14.12 0.00 2.26 0.63 0.07
02时30分49秒 dev253-0 1.19 0.47 9.06 8.03 0.00 2.36 0.61 0.07
02时40分49秒 dev253-0 1.49 3.25 16.71 13.44 0.00 2.12 0.75 0.11
02时50分49秒 dev253-0 4.64 40.83 186.74 49.04 0.01 2.37 1.07 0.49
03时00分49秒 dev253-0 3.35 4.33 141.59 43.52 0.01 2.08 0.91 0.30
03时10分49秒 dev253-0 3.28 53.94 49.03 31.36 0.01 2.02 0.92 0.30
03时20分49秒 dev253-0 1.65 3.63 25.56 17.68 0.00 2.78 0.93 0.15
03时20分49秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
03时30分49秒 dev253-0 1.15 0.30 15.79 13.97 0.00 2.66 0.60 0.07
03时40分49秒 dev253-0 1.76 5.44 26.96 18.41 0.00 2.53 0.93 0.16
03时50分49秒 dev253-0 1.67 12.64 19.88 19.43 0.00 2.94 0.95 0.16
04时00分49秒 dev253-0 1.18 1.49 15.46 14.40 0.00 2.24 0.64 0.07
04时10分49秒 dev253-0 1.11 0.21 15.55 14.24 0.00 2.28 0.58 0.06
04时20分49秒 dev253-0 1.40 3.60 8.53 8.70 0.00 2.05 0.81 0.11
04时30分49秒 dev253-0 1.01 0.00 8.14 8.05 0.00 2.09 0.64 0.07
04时40分49秒 dev253-0 1.21 0.17 18.26 15.17 0.00 2.27 0.66 0.08
04时50分49秒 dev253-0 3.70 43.61 332.65 101.74 0.01 3.04 1.66 0.61
05时00分49秒 dev253-0 0.95 0.05 7.65 8.10 0.00 2.26 0.56 0.05
05时10分49秒 dev253-0 1.03 0.03 14.98 14.64 0.00 2.19 0.61 0.06
05时20分49秒 dev253-0 1.16 0.16 15.75 13.68 0.00 2.33 0.63 0.07
05时30分49秒 dev253-0 1.02 0.00 14.61 14.35 0.00 2.51 0.62 0.06
05时40分49秒 dev253-0 1.02 0.11 14.89 14.71 0.00 2.44 0.64 0.07
05时50分08秒 dev253-0 2.09 13.92 29.05 20.54 0.00 2.62 0.86 0.18
06时00分49秒 dev253-0 1.85 3.25 24.94 15.21 0.00 2.98 0.64 0.12
06时10分49秒 dev253-0 4.47 13.85 214.91 51.14 0.01 2.79 1.19 0.53
06时20分49秒 dev253-0 4.56 15.34 208.64 49.10 0.01 2.50 1.06 0.48
06时30分49秒 dev253-0 1.46 5.49 22.93 19.51 0.00 2.31 0.80 0.12
06时40分49秒 dev253-0 1.54 9.82 32.37 27.34 0.00 3.14 0.98 0.15
06时40分49秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
06时50分49秒 dev253-0 2.28 31.63 39.76 31.34 0.01 3.42 0.78 0.18
07时00分49秒 dev253-0 1.16 3.02 8.35 9.78 0.00 2.70 0.59 0.07
07时10分49秒 dev253-0 1.38 7.47 16.09 17.06 0.00 2.80 0.69 0.10
07时20分49秒 dev253-0 4.66 51.67 75.81 27.35 0.01 3.09 1.13 0.53
07时30分49秒 dev253-0 10.65 39.99 609.00 60.92 0.03 3.16 1.24 1.32
07时40分49秒 dev253-0 4.27 31.98 65.89 22.92 0.01 2.18 0.93 0.40
07时50分49秒 dev253-0 4.57 26.64 76.89 22.68 0.01 2.32 0.96 0.44
08时00分49秒 dev253-0 3.37 14.11 63.01 22.88 0.01 2.53 0.78 0.26
08时10分49秒 dev253-0 3.13 71.41 27.02 31.45 0.01 2.35 0.94 0.29
08时20分49秒 dev253-0 3.36 78.62 17.71 28.64 0.01 2.16 1.04 0.35
08时30分49秒 dev253-0 2.37 29.51 26.97 23.81 0.01 3.46 1.20 0.29
08时40分49秒 dev253-0 1.92 1.35 80.06 42.40 0.00 2.91 0.81 0.16
08时50分49秒 dev253-0 1.31 16.56 15.27 24.39 0.00 2.26 0.80 0.10
09时00分49秒 dev253-0 4.12 194.36 34.52 55.55 0.02 4.31 1.08 0.44
09时10分49秒 dev253-0 1.17 5.71 8.57 12.22 0.00 2.04 0.63 0.07
09时20分49秒 dev253-0 2.67 86.31 12.00 36.77 0.01 2.52 0.73 0.20
09时30分49秒 dev253-0 1.04 0.11 8.36 8.10 0.00 2.14 0.64 0.07
09时40分49秒 dev253-0 5.57 53.30 74.69 22.99 0.01 2.10 0.84 0.47
09时50分49秒 dev253-0 1.62 27.93 18.12 28.49 0.01 3.66 0.76 0.12
10时00分49秒 dev253-0 1.57 4.08 23.92 17.83 0.00 2.47 0.81 0.13
10时00分49秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
10时10分49秒 dev253-0 1.63 9.10 18.50 16.90 0.00 2.53 0.73 0.12
10时20分49秒 dev253-0 2.21 20.09 21.40 18.73 0.00 2.52 0.78 0.17
10时30分49秒 dev253-0 1.10 1.01 8.47 8.64 0.00 2.28 0.58 0.06
10时40分49秒 dev253-0 4.55 9.45 69.80 17.43 0.01 1.88 0.83 0.38
10时50分24秒 dev253-0 3.01 14.45 58.21 24.15 0.01 2.73 0.68 0.20
11时00分49秒 dev253-0 1.87 7.70 25.71 17.87 0.00 2.65 0.62 0.12
11时10分49秒 dev253-0 2.50 27.65 43.19 28.37 0.01 2.98 0.65 0.16
11时20分49秒 dev253-0 4.86 28.89 90.85 24.65 0.01 2.09 0.76 0.37
11时30分49秒 dev253-0 4.48 26.78 196.26 49.83 0.01 3.06 0.86 0.39
11时40分49秒 dev253-0 46.52 3786.52 246.79 86.69 0.53 11.82 0.78 3.64
平均时间: dev253-0 3.13 78.14 61.86 44.67 0.01 4.73 0.91 0.28
12时33分47秒 LINUX RESTART (2 CPU)
12时40分14秒 DEV tps rkB/s wkB/s areq-sz aqu-sz await svctm %util
12时50分14秒 dev253-0 2.70 60.75 10.12 26.23 0.01 3.48 2.32 0.63
13时00分14秒 dev253-0 2.34 20.90 20.17 17.53 0.01 3.41 2.28 0.53
13时10分14秒 dev253-0 7.62 61.33 221.75 37.15 0.02 2.68 1.65 1.26
13时20分14秒 dev253-0 4.01 30.69 76.57 26.74 0.01 2.64 1.65 0.66
13时30分14秒 dev253-0 1.32 4.81 22.74 20.93 0.00 2.52 0.85 0.11
13时40分14秒 dev253-0 1.44 20.91 16.02 25.71 0.00 2.65 0.85 0.12
13时50分14秒 dev253-0 2.73 56.91 11.76 25.11 0.01 2.39 1.54 0.42
14时00分14秒 dev253-0 1.35 1.31 22.25 17.47 0.00 2.10 0.66 0.09
14时10分14秒 dev253-0 1.29 7.58 13.31 16.22 0.00 2.63 0.92 0.12
14时20分14秒 dev253-0 1.14 1.69 16.03 15.57 0.00 2.61 0.67 0.08
14时30分14秒 dev253-0 4.17 31.91 48.94 19.36 0.01 2.86 1.68 0.70
平均时间: dev253-0 2.74 27.16 43.61 25.85 0.01 2.76 1.57 0.43
iostat -d命令
# iostat -dx /dev/vda1
Linux 4.18.0-240.10.1.el8_3.x86_64 (iZ2zeb7o9hu1q8bvuj8olgZ) 2022年03月31日 _x86_64_ (2 CPU)
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
vda1 4.20 2.73 319.96 112.81 0.01 0.31 0.31 10.27 8.13 6.75 0.05 76.22 41.26 1.77 1.23
网络性能评估
ping命令:检测网络连通
netstat命令:-i 查看网络接口信息,-r 检测系统路由表信息
sar -n命令:显示系统网络运行状态
sar -n DEV 2 3 # DEV:网络接口,EDEV:网络错误统计数据,SOCK:套接字信息,FULL:显示所有
Linux 4.18.0-240.10.1.el8_3.x86_64 (iZ2zeb7o9hu1q8bvuj8olgZ) 2022年03月31日 _x86_64_ (2 CPU)
14时47分59秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
14时48分01秒 veth3ae0ac7 1.00 1.00 0.06 0.06 0.00 0.00 0.00 0.00
14时48分01秒 vethcf55e9f 1.00 1.00 0.06 0.06 0.00 0.00 0.00 0.00
14时48分01秒 vethca493f5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 veth20e7e1f 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 vethe2c35c4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 br-3bde4017a5e3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 vethd448364 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 br-84e5b7b3c3b1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 veth757142c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 veth7774abf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 veth60c21dc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分01秒 eth0 2.50 1.50 0.15 2.12 0.00 0.00 0.00 0.00
14时48分01秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
14时48分03秒 veth3ae0ac7 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 vethcf55e9f 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 vethca493f5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 veth20e7e1f 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 vethe2c35c4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 br-3bde4017a5e3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 vethd448364 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 br-84e5b7b3c3b1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 veth757142c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 veth7774abf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 veth60c21dc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分03秒 eth0 1.50 6.00 0.10 2.65 0.00 0.00 0.00 0.00
14时48分03秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
14时48分05秒 veth3ae0ac7 1.00 1.00 0.06 0.06 0.00 0.00 0.00 0.00
14时48分05秒 vethcf55e9f 1.00 1.00 0.06 0.06 0.00 0.00 0.00 0.00
14时48分05秒 vethca493f5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 veth20e7e1f 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 vethe2c35c4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 br-3bde4017a5e3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 vethd448364 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 br-84e5b7b3c3b1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 veth757142c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 veth7774abf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 veth60c21dc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14时48分05秒 eth0 2.00 6.50 0.12 2.65 0.00 0.00 0.00 0.00
平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
平均时间: veth3ae0ac7 0.67 0.67 0.04 0.04 0.00 0.00 0.00 0.00
平均时间: vethcf55e9f 0.67 0.67 0.04 0.04 0.00 0.00 0.00 0.00
平均时间: vethca493f5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: veth20e7e1f 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: vethe2c35c4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: br-3bde4017a5e3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: vethd448364 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: br-84e5b7b3c3b1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: veth757142c 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: veth7774abf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: veth60c21dc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: eth0 2.00 4.67 0.12 2.47 0.00 0.00 0.00 0.00
traceroute命令:跟踪数据包传输路径
nslookup命令:判断DNS解析信息
动态监控性能
watch命令:动态监控,默认2秒钟执行一次,执行结果更新在屏幕上
#watch -n 3 -d free # -n 重复执行时间,-d 高亮显示变动
Every 3.0s: free iZ2zeb7o9hu1q8bvuj8olgZ: Thu Mar 31 14:51:38 2022
total used free shared buff/cache available
Mem: 3825736 2861444 130592 40848 833700 523584
Swap: 0 0 0