我在 Ubuntu 16.04 工作站上执行一项半定期任务:它有第二个磁盘,上面装有 Windows 7。它基本上是一个裸机安装,我有时会启动它并让 Windows 更新运行。我的想法是用它来玩游戏,但事实证明我很少有时间。我仍然保持它的最新状态。
在我进行此类更新后,这项半定期任务是使用克隆磁盘ntfsclone
。将其视为“低技术”快照,因为 - 唉 - Windows 无法存在于 LVM 卷内。(好吧,如果它被虚拟化了,它可以。)我编写了一个脚本来执行此操作(以及其他一些操作),因为我很懒,但花费最多时间并导致问题的命令是:
ntfsclone -s -o /home/jorg/Images/$(date +%F).ntfsclone /dev/sdc2
其中/dev/sdc2
是 Windows 分区,是 LVM 卷,位于由和/home/jorg/Images/
组成的 RAID1 上。所有这些磁盘都是普通硬盘,使用 SATA 连接。/dev/sda
/dev/sdb
出现的问题:当我这样做时,我的工作站变得完全无法使用。响应速度简直糟透了。甚至切换和登录虚拟控制台(Ctrl
- Alt
- F1
)的速度也慢得令人无法忍受。
这不仅在使用中ntfsclone
,这就是我怀疑磁盘 I/O 的原因。当我使用 时dd
,我经常使用这个工具来帮助人们解决有缺陷的磁盘问题,同样的情况也发生了。使用 时情况更糟dd
,因为它通常通过 USB 传输。话虽如此,我还是使用dd
而不是ntfsclone
作为上述设置的测试,即仅 SATA,结果同样糟糕。是的,我使用了bs
中的参数,dd
以便正确完成缓冲。
问题是:虽然计算机在 14.04 中速度变慢了,但并没有变得无法使用。它只是“慢了一点”,但浏览、电子邮件、终端都仍然可以忍受使用。
到目前为止,我已经尝试过不同的磁盘调度程序。支持的调度程序包括:
cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
切换到cfq
或noop
没有帮助。(echo cfq > /sys/block/sda/queue/scheduler
)。
有关我的机器的一些信息:
root@tiger:~# uname -a
Linux tiger 4.4.0-34-generic #53-Ubuntu SMP Wed Jul 27 16:06:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@tiger:~# dmidecode -t baseboard | grep -e Product -e Manufacturer
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: F1A75-V PRO
root@tiger:~# free -mh
total used free shared buff/cache available
Mem: 15G 1,7G 2,9G 154M 11G 13G
Swap: 31G 0B 31G
root@tiger:~# for disk in a b c ; do echo \[ Disk informatoin for \/dev\/sd$disk \] ; hdparm -I /dev/sd$disk | grep -e Model -e Transport ; done
[ Disk informatoin for /dev/sda ]
Model Number: ST1500DL003-9VT16L
Transport: Serial, SATA Rev 3.0
* SMART Command Transport (SCT) feature set
[ Disk informatoin for /dev/sdb ]
Model Number: ST1500DL003-9VT16L
Transport: Serial, SATA Rev 3.0
* SMART Command Transport (SCT) feature set
[ Disk informatoin for /dev/sdc ]
Model Number: WDC WD1002FAEX-00Z3A0
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
* SMART Command Transport (SCT) feature set
我确实意识到我的/dev/sda
和/dev/sdb
并不是强者,但是在 14.04 下他们表现不错。
是否有人在执行高 I/O 时也遇到糟糕的性能?如果是这样,你找到了解决方法吗?
答案1
这xanmod 内核似乎有帮助。我运行的是 16.04,带有 ssd 启动驱动器,gnome 3.2。我以为 deadline 调度程序会做到这一点,但似乎没有太大帮助。这是我遵循的: http://www.hecticgeek.com/2016/09/supercharge-ubuntu-16-04-lts-xanmod-kernel/