我有许多装有 Intel X-25 驱动器的 centos 5 机箱(我认为开发机箱是 x25-m,生产机箱是 x25-e)。我们发现其中一个开发机箱的磁盘性能严重下降(每天很容易写入 5+ GB,这意味着我们每月要写入整个驱动器的数据几次)。
有问题的盒子:
- 英特尔 x25-m
- Ext3(不支持 TRIM)
- centos 5
- VMware ESXi
Wikipedia 提到,较新版本的 hdparm(centos5 不包含)可以批量 TRIM 空闲块。此实用程序听起来也很有用:http://blog.patshead.com/2009/12/a-quick-and-dirty-wipersh-fix-for-intel-x25-m.html
大约一个月前,在该系统上复制 300 MB 目录时,磁盘写入性能已下降到 <1 MB/秒 —— 而它以前能够以至少 5 倍的速度执行相同的复制操作。
我该怎么做才能恢复该系统的性能?
答案1
在 SSD 上,尤其是在虚拟磁盘上运行高写入 VM 对我来说似乎是一项惊人的挑战(这是对一些不那么恭维的事情的委婉说法)。
可能出现问题的主要事项:
使用稀疏的“可增长”虚拟磁盘。
使用日志文件系统(对于 SSD 来说是个坏消息)。
文件系统碎片极其严重。
元数据更新率高(例如缺少“noatime”)。
真实文件系统和虚拟文件系统的文件系统对齐(超过分区对齐)。
缓冲区缓存太小,并且应用程序过于频繁地使用“同步”。
小写入(小于 256KiB)。
顺便说一下大多数固态硬盘模拟4KiB 写入,但物理写入(实际擦除)大小通常在 256KiB-1MiB 之间。
我胡乱猜测,应用程序向磁盘写入如此多的数据会更新磁盘上的大量小记录,而整个系统设置和应用程序设计都是错误的。
答案2
您的分区是否正确对齐?大多数 SSD 使用 4k 块,如果您的分区从默认的 31.5k(63 块)边界开始,这可能会对您的性能产生不利影响。