写入速度限制为 500KB/s?

写入速度限制为 500KB/s?

我的笔记本电脑正在运行 Debian 测试,但最近在执行涉及写入磁盘的操作时,速度非常缓慢。

我不知道问题出在哪里,希望得到一些帮助来追踪并修复它。

以下是我注意到的症状:

  • iotop对于当前正在写入磁盘的任何进程(例如,,...),通常会在“磁盘写入”中显示非常接近 500KB/s 的cp带宽dpkg
  • 无论 CPU 负载如何,都会发生这种情况。
  • 运行 1 个cp进程会导致总写入带宽约为 500KB/s。运行 10 个cp进程会导致总写入带宽约为 5MB/s。
  • 这是 SSD 磁盘上 LVM 卷上的 ext4 文件系统。上一点强烈暗示限制不是来自硬件,但为了以防万一,我将系统克隆到另一个 SSD 并得到了相同的结果。
  • 该问题不会影响全新启动后的机器,但似乎只会在一段时间后出现(这意味着在一些挂起到内存并唤醒之后,但我不知道是否相关)。
  • 在构建 Emacs 时,速度减慢尤其明显,构建的其中一个阶段通过许多小write调用生成一个大约 7MB 的所谓“pdump 文件”,并且iotop告诉我该过程最终总共执行了超过 400MB 的磁盘写入(速度为 500KB/s,因此写入这个可怜的 7MB 文件需要 10 多分钟)。这表明文件正在以非常精细的粒度进行“同步”,尽管我没有在源代码中看到任何可以证明这种行为的依据。
  • 我尝试fsck -f在一次重启后进行检查,但并未发现任何问题。
  • dmesg不包含来自 ext4 或 lvm 层或块设备层的任何异常消息。
  • 该问题影响我在 SSD 上使用的所有 3 个文件系统(所有 3 个文件系统都在同一 LVM 卷组中使用 ext4)。它不影响 tmpfs 挂载的 /tmp。
  • 这台机器已经运行了最新的 Debian 测试,并且几个月来一直显示出这些迹象,使用了各种内核(现在正在运行5.2.0-2-686-pae,不确定我看到此问题的第一个内核版本是什么)。

根据要求,这里有一些额外的信息。

% df -h
Sys. de fichiers          Taille Utilisé Dispo Uti% Monté sur
udev                        3.9G       0  3.9G   0% /dev
tmpfs                       796M     26M  770M   4% /run
/dev/mapper/Alfajor-root     19G     16G  2.3G  88% /
tmpfs                       3.9G     30M  3.9G   1% /dev/shm
tmpfs                       5.0M    8.0K  5.0M   1% /run/lock
tmpfs                       3.9G       0  3.9G   0% /sys/fs/cgroup
tmpfs                       512M    8.0K  512M   1% /tmp
/dev/mapper/Alfajor-cache   7.8G    6.7G  1.1G  87% /var/cache
/dev/mapper/Alfajor-home     41G     37G  1.8G  96% /home
tmpfs                       796M     12K  796M   1% /run/user/122
% free -m
              total        used        free      shared  buff/cache   available
Mem:           7952        1188        2724         212        4039        5858
Swap:          4095         213        3882
% uname -a
Linux alfajor 5.3.0-3-686-pae #1 SMP Debian 5.3.15-1 (2019-12-07) i686 GNU/Linux
%

答案1

我仍然不完全确定问题出在哪里,但我将内核从 切换i686-paeamd64,这似乎已经解决了问题(我的系统其余部分仍在运行 Debian 的 i386 端口)。我怀疑这与内核对 PAE 内存的管理问题有关(可能是因为某些缓冲区需要在 RAM 的前 2GB 或 4GB 内才能访问)。

相关内容