Debian 12 的磁盘活动比 CentOS 7 高

Debian 12 的磁盘活动比 CentOS 7 高

我们正在将 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 上的默认设置)。

相关内容