磁盘I / O饱和时系统锁定


8

当我从外部USB3硬盘驱动器到内部硬盘驱动器进行大文件传输时(反之亦然),无论是通过Nautilus还是通过终端,Ubuntu(Unity)几乎都会完全锁定。在文件传输运行时,诸如alt-tab之类的操作需要20秒钟或更长时间才能完成。当对磁盘进行大量随机读取/写入时(例如在安装软件包时),情况并非如此。

当我运行Windows时,我可以在后台运行文件传输,并且仍然可以执行操作,尽管在访问磁盘时需要花些时间。我仍然可以按alt键就可以了。

看来Ubuntu优先于所有其他磁盘I / O优先进行文件传输,这就是它锁定的原因。在Windows中,似乎文件传输的优先级较低,这意味着磁盘饱和时系统可以保持响应。

我怎样才能解决这个问题?这很烦人,因为复制文件时计算机完全无法使用。14.04和15.10中都会发生此问题。我被迫将硬盘驱动器插入USB2端口以防止出现此问题,从而导致传输时间更长。


不应该,但是请检查unix.stackexchange.com/questions/107703/…是否帮助
Rmano 2015年

Answers:


10

我在笔记本电脑上遇到了同样的问题,与笔记本电脑的其余部分相比,笔记本电脑的磁盘系统运行缓慢。

通过更改用于磁盘传输的调度算法,我能够使它变得更好。默认情况下,Ubuntu使用Deadline,但是当我使用cfq时,我发现系统响应速度更快。

要查看您使用的调度程序,请发出命令

cat /sys/class/block/sda/queue/scheduler    

要进行一次更改(直到重新启动),请发出命令

echo cfq | sudo tee /sys/class/block/sda/queue/scheduler

请注意,更改外部硬盘驱动器的内容非常重要;我的通常加载为sdb。所以我会发出命令echo cfq | sudo tee /sys/class/block/sdb/queue/scheduler

通过elevator=cfq在grub文件中添加如下所示的内核参数,使更改永久生效:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noautogroup elevator=cfq"

哇,这行得通。谢谢!现在,我的系统在传输时反应更快,并且实际上在整体加载方面更快。
Degru

很高兴听到它的帮助。
格林

1
>默认情况下,Ubuntu使用Deadline,但是当我使用Deadline时,我的系统响应速度更快。我怀疑您确实希望此短语以“ ...当我使用cfq时”结尾。
markus_b 2015年

我从未出于某种原因寻求解决方案。我几天前发布了这个答案,现在我有机会对其进行测试(我不得不将许多 torrent从Deluge 迁移回Transmission,这需要重新检查每个torrent),并且确实更改了调度程序一种提升。该系统仍然断断续续,特别是在切换工作空间时,但是请确保它不会像以前那样完全挂起。谢谢!这个答案非常有用,以至于IMO应该得到赏金(我正在设置一个)。
kos 2015年

@kos这不是一个完整的解决方案,否则我自己一定会很开心-我偶尔还是口吃,觉得这很令人沮丧。
格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.