我们正在将 CentOS 7 机器替换为使用 Debian 12,并且注意到,在运行相同进程的同一台服务器上,使用 Debian 时的整体磁盘活动明显高于在 CentOS 上运行时,几乎翻了一番。我使用 iotop 来跟踪磁盘活动,相同使用情况下的磁盘读写活动大约翻了一番。
这些服务器运行我们自己的专有 Java 应用程序和 MySQL 服务器。
这是 Debian 的正常现象吗?
更新根据评论:到目前为止,为了进行故障排除,我们确保两台机器是相同的、相同的刀片,并且我们尝试对它们进行相同的配置。我们还尝试了很多 sysctl 配置选项来尝试匹配它们。我们还尝试使用 ext4 和 xfs 运行以查看是否存在任何差异。这是我们的第一个想法,因为 CentOS 默认为 xfs,而 Debian 默认为 ext4,但将 debian 更改为 xfs 没有任何区别。
VMSTAT 输出。CentOS 机器:
[CENTOS ~]# vmstat 1 5
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 762040 229876 0 22152976 0 1 560 336 3 4 3 1 95 1 0
0 0 762040 230928 0 22153008 0 0 0 0 1545 2617 0 0 100 0 0
0 0 762040 230892 0 22153008 0 0 0 0 1329 2520 0 0 98 1 0
0 0 762040 230892 0 22153008 0 0 0 0 1527 2618 0 0 99 0 0
0 0 762040 230892 0 22153008 0 0 0 0 1468 2570 0 0 99 0 0
Debian 机器:
DEBIAN:~# vmstat 1 5
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 0 226980 0 19532532 0 0 1910 617 406 401 3 1 95 1 0
1 0 0 226980 0 19532532 0 0 0 0 1961 2441 0 0 99 0 0
1 0 0 226980 0 19532532 0 0 0 0 2207 2621 1 0 99 0 0
1 0 0 226980 0 19532532 0 0 0 0 1896 2418 0 0 99 0 0
1 0 0 226980 0 19532532 0 0 0 0 2305 2696 0 0 99 0 0
答案1
我建议让 atop 在后台运行,并查看 atop 在 Interval 中进行的捕获,看看是否能提供任何见解
您还可以编写一个脚本,并让其在后台运行,以便在磁盘活动较多时使用 atop 进行捕获
#!/bin/bash
# Threshold for disk activity (in percentage)
threshold=80
while true; do
# Get disk utilization percentage
disk_util=$(iostat -d -x 1 1 | awk '/^[hsv]d[a-z]? / {print $NF}')
# Check if disk activity exceeds threshold
if [[ $(echo "$disk_util > $threshold" | bc) -eq 1 ]]; then
echo "Disk activity is high. Starting atop..."
atop -d 1
fi
# Sleep for a short duration before checking again
sleep 10
done
将此脚本保存为 disk-monitor.sh 并让其在后台运行nohup ./disk_monitor.sh &
答案2
如果运行 MySQL,请尝试将其替换为 MariaDB。我注意到后者的 IO 明显更低(这是 CentOS 7 上的默认设置)。