内部 SATA 设备的性能问题导致高负载

内部 SATA 设备的性能问题导致高负载

我的笔记本电脑的性能有问题。事实上,我最近需要安装很多东西,有时整个机器会完全冻结。

首先是一些一般信息:我目前正在运行内核版本为 4.19.11-arch1-1-ARCH 的 Archlinux。该机器拥有 8GB RAM 和两个内部磁盘:一个旋转磁盘和一个 SSD。

现在,我需要访问旋转磁盘上的一些数据。 (我在这里写的所有内容仅指旋转的。SSD没有经过测试。)我发现,当通过网络从磁盘复制数据时,主机系统几乎冻结。这意味着图形界面没有响应,我必须等待进程终止才能再次访问我的计算机。鼠标不再在屏幕上移动,键盘敲击延迟了半分钟以上。

终止后,我对磁盘做了一些测试,发现即使是简单的

ionice -c idle dd if=/dev/sda of=/dev/null bs=1M count=1000 status=progress

造成了这个问题。与网络无关。进一步的调查(查看topuptimefree)得出以下结果:

  • 没有进行大规模交换。
  • 除了 1-2 个核心处于 IO 等待状态外,CPU 大部分时间都处于空闲状态。 (8 核系统中为 20-30%)
  • 有足够的 RAM 可供使用
  • 负载平均值(由 报告的待处理进程数uptime)跳至超过 13 的高值并保持该值(即使运行时间较长的平均值也会收敛到这些高值)。
  • 一旦IO操作中断,机器很快就会再次响应,负载降至2-4以下。

我尝试在互联网上查找一些信息。那里没有发现太多东西。我只找到了查看当前IO调度器的提示。默认情况下mq-deadline,所有磁盘均设置为。

我尝试了其他方法,似乎bfq效果最好,因为整个问题使用它是最不重要的。它并没有完全消失。我认为,由于类别的原因ioniceidle对整体系统性能的影响应该可以忽略不计。实际上,系统保持响应,但有明显的一秒的滞后。比以前更好但并不完美。

最近对虚拟机磁盘的格式化导致主机系统完全锁定。我不得不艰难地重新开始。bfq至少使用允许格式化的虚拟磁盘。

由于机器不再有任何响应,我没有从 获得任何信息dmesg。我不知道幕后是否发生了什么疯狂的事情。我需要找出这个问题。我在互联网上发现有人假设内核中存在错误。我不知道这是否是真的。我还能做什么?

相关内容