记一次服务器IO性能爆满导致mysql查询异常缓慢问题排查
·
我的是centos7
首先安装使用 iostat -x 1 5 命令查看磁盘整体使用情况
-
重点看
%util(磁盘利用率),接近 100% 表示磁盘瓶颈严重。 -
await(平均等待时间)和svctm(服务时间)数值越高,说明磁盘响应越慢。 -
结合磁盘设备,看哪个磁盘利用率高。
-
总结判断:
指标 说明 结果判断 iotop 显示 mysqld 磁盘I/O高 MySQL 是磁盘I/O主力 是MySQL引起的瓶颈 iostat %util 接近100% 磁盘负载过重,响应时间长 磁盘可能成瓶颈 top %wa (IO wait) 高 系统等待磁盘操作完成 存在磁盘I/O瓶颈
执行
iostat -x 1 5
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 3.00 61.00 48.00 348.00 12.38 1.86 28.08 1.67 29.38 13.42 85.90
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 35.00 58.00 560.00 620.00 25.38 7.71 80.89 179.89 21.16 10.75 100.00
dm-0 0.00 0.00 38.00 81.00 608.00 1124.00 29.11 8.67 71.28 165.82 26.93 8.40 100.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
3.21 0.00 1.20 16.30 0.00 79.30
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 3.00 63.00 48.00 232.00 8.48 1.09 17.68 2.00 18.43 12.41 81.90
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.00 52.00 71.00 832.00 808.00 26.67 7.04 59.91 120.13 15.80 8.13 100.00
dm-0 0.00 0.00 55.00 87.00 880.00 1232.00 29.75 7.45 54.75 113.69 17.48 7.04 100.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
发现util高达100% 说明io压力非常大
然后安装iotop
yum install -y epel-release
yum install -y iotop
执行 iotop -oP
参数说明:
-
-o:只显示有 I/O 活动的进程 -
-P:以线程模式显示(更细粒度)
或者
iotop -ao # 累积 IO 情况,方便看哪些进程长期占用 IO
[root@coy-a~]# ps aux --sort=-%mem | head -20
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
esuser 1129 23.8 22.9 420271272 9432996 ? Ssl Feb24 53647:32 /usr/local/lib/elasticsearch-7.16.2/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 -Xms8g -Xmx8g -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-15312320245934292381 -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 -XX:MaxDirectMemorySize=4294967296 -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=25 -Des.path.home=/usr/local/lib/elasticsearch-7.16.2 -Des.path.conf=/usr/local/lib/elasticsearch-7.16.2/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/lib/elasticsearch-7.16.2/lib/* org.elasticsearch.bootstrap.Elasticsearch
root 8365 2.9 20.4 11916292 8426136 ? Sl Feb24 6518:50 /usr/bin/python /opt/coyapp/CaptchaPredcoyionService/app.py
root 87676 8.0 6.3 20946620 2628480 ? Sl 09:36 5:20 java -jar /opt/coyapp/coy.jar --spring.config.location=conf/application-prod.yml
root 117526 0.4 5.3 2625304 2183508 ? Ssl Jul14 104:37 /opt/redis/redis-server 0.0.0.0:6379
root 8176 0.1 2.5 20687284 1057864 ? Sl Feb24 411:20 java -jar -DSUB_LOG_HOME=url /opt/coyapp/coyCollector.jar -n mysql -f /opt/coyapp/conf/flume-url.conf
root 8559 0.0 1.4 20059300 595904 ? Sl Feb24 213:07 java -jar /opt/coyapp/coyDataAnalysis.jar --spring.profiles.active=prod
root 8454 0.9 1.4 21004536 588988 ? Sl Feb24 2178:47 java -jar /opt/coyapp/coyDataGeneralization.jar --spring.profiles.active=prod
root 7182 0.3 1.0 17805992 421812 ? Sl Feb24 790:36 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java -Djava.util.logging.config.file=/opt/coyapp/apache-tomcat-9.0.54/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /opt/coyapp/apache-tomcat-9.0.54/bin/bootstrap.jar:/opt/coyapp/apache-tomcat-9.0.54/bin/tomcat-juli.jar -Dcatalina.base=/opt/coyapp/apache-tomcat-9.0.54 -Dcatalina.home=/opt/coyapp/apache-tomcat-9.0.54 -Djava.io.tmpdir=/opt/coyapp/apache-tomcat-9.0.54/temp org.apache.catalina.startup.Bootstrap start
root 8084 0.1 0.9 18293052 404360 ? Sl Feb24 393:37 java -jar -DSUB_LOG_HOME=bigscreen /opt/coyapp/coyCollector.jar -n mysql -f /opt/coyapp/conf/flume-bigScreen.conf
mysql 87504 0.9 0.8 4354064 357932 ? Ssl Jul29 11:31 /usr/sbin/mariadbd
root 878 0.2 0.6 10525768 281000 ? Sl Feb24 546:03 /agent/ubackup/uagent/bin/jre1.7/bin/java -Xms128m -Xmx512m -Xss512k -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -jar uagent.jar start
root 1768 2.7 0.5 583684 210640 ? Sl Feb24 6180:23 /data/dbAuditAgent/dbagent2.30/dbAgent
root 8428 0.0 0.4 4378500 179504 ? Sl Feb24 2:28 python /opt/coyapp/Dynamcoyhreshold/app.py
root 3504 0.0 0.3 4488816 137552 ? Sl Feb24 216:27 /usr/bin/gnome-shell
root 4277 0.0 0.2 1430864 109260 ? Sl Feb24 23:11 /usr/bin/gnome-software --gapplication-service
gdm 3390 0.1 0.2 4480924 87912 ? Sl Feb24 231:21 /usr/bin/gnome-shell
root 30683 0.3 0.1 4228644 63576 ? Sl Jul18 60:12 ./gov_defence_service -c config.xml -l runlog/run_log.log -e ALL -t ALL -s safe -m daemon
root 8325 0.0 0.1 3117780 51600 ? S Feb24 0:04 python /opt/coyapp/CaptchaPredcoyionService/app.py
gdm 3860 0.6 0.1 675520 47984 ? Sl Feb24 1425:56 /usr/libexec/gsd-color
在执行 pidstat -d 1 10
[root@a mysql]# pidstat -d 1 10
Linux 3.10.0-1160.45.1.el7.x86_64 (coy-APP) 07/30/2025 _x86_64_ (16 CPU)
03:54:49 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:50 PM 1004 1129 30.48 3847.62 3401.90 java
03:54:50 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:51 PM 1004 1129 16.00 1200.00 500.00 java
03:54:51 PM 0 8084 0.00 12.00 0.00 java
03:54:51 PM 988 40212 0.00 4.00 0.00 mariadbd
03:54:51 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:52 PM 1004 1129 0.00 4552.00 2564.00 java
03:54:52 PM 988 40212 16.00 36.00 0.00 mariadbd
03:54:52 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:53 PM 1004 1129 0.00 1192.00 496.00 java
03:54:53 PM 988 40212 0.00 40.00 0.00 mariadbd
03:54:53 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:54 PM 1004 1129 40.00 4680.00 3948.00 java
03:54:54 PM 988 40212 0.00 32.00 0.00 mariadbd
03:54:54 PM 0 87676 0.00 4.00 0.00 java
03:54:54 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:55 PM 1004 1129 0.00 2540.00 496.00 java
03:54:55 PM 0 7182 0.00 4.00 0.00 java
03:54:55 PM 0 30683 0.00 4.00 0.00 gov_defence_ser
03:54:55 PM 988 40212 0.00 4.00 0.00 mariadbd
03:54:55 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:56 PM 1004 1129 0.00 3000.00 2548.00 java
03:54:56 PM 0 8454 0.00 8.00 0.00 java
03:54:56 PM 988 40212 0.00 4.00 0.00 mariadbd
03:54:56 PM 0 114686 0.00 4.00 0.00 gov_defence_gua
03:54:56 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:57 PM 1004 1129 0.00 4368.00 2052.00 java
03:54:57 PM 0 8176 0.00 4.00 0.00 java
03:54:57 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:58 PM 1004 1129 0.00 1028.00 2264.00 java
03:54:58 PM 988 40212 32.00 12.00 0.00 mariadbd
03:54:58 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:54:59 PM 1004 1129 0.00 316.00 200.00 java
03:54:59 PM 0 1768 0.00 4.00 0.00 dbAgent
03:54:59 PM 988 40212 0.00 56.00 0.00 mariadbd
Average: UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
Average: 1004 1129 8.76 2678.21 1854.73 java
Average: 0 1768 0.00 0.40 0.00 dbAgent
Average: 0 7182 0.00 0.40 0.00 java
Average: 0 8084 0.00 1.19 0.00 java
Average: 0 8176 0.00 0.40 0.00 java
Average: 0 8454 0.00 0.80 0.00 java
Average: 0 30683 0.00 0.40 0.00 gov_defence_ser
Average: 988 40212 4.78 18.71 0.00 mariadbd
Average: 0 87676 0.00 0.40 0.00 java
Average: 0 114686 0.00 0.40 0.00 gov_defence_gua
发现根本原因:PID 1129 的 Java 进程(UID 1004)
-
它平均写入达 ~2.7MB/s,其中不少是 小块写(高 IOPS)
-
kB_ccwr/s也高(说明是缓存刷盘):1854.73 kB/s是从内存刷到磁盘的量 -
这个进程名是:java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 ... org.elasticsearch.bootstrap.Elasticsearch
然后我去ES查看了今天索引的数据量 发现今天有一个索引大小高达19G 并且还在持续增长 发现了问题所在尝试停掉给ES推送数据的代码 重启了数据库与jar包 系统异常缓慢的问题就恢复的正常
更多推荐


所有评论(0)