我的 Debian 6.0 64 位自定义内核机器上运行着一些游戏服务器服务。
每当我安装新服务时,我当前正在运行的服务就会滞后。
安装新服务仅涉及将文件提取到用户的目录中,尽管我以最低优先级执行此操作(良好的 19 和 1000kbps SCP 限制)。
这次我在安装新服务时以及出现延迟时获取了“vmstat 3”输出。虽然我不擅长阅读它,但我猜这是一些磁盘问题。
http://paste.ubuntu.com/1152249/
请参阅第 11 至 16 行了解发生的时间。
更新 :
这是
DF-H
输出:http://paste.ubuntu.com/1152734/
而250G磁盘就是用于这些操作和服务的磁盘。
答案1
我建议改变输入/输出调度程序系统上的默认设置并重新测试文件副本。根据您的内核版本,你可能已经将deadline
调度程序设置为默认。也许在这种情况下cfq
调度程序会更有意义。
使用以下命令检查当前设置:
cat /sys/block/<device>/queue/scheduler
数据驱动器的块设备(例如 sda、sdb 等)在哪里?
根据您当前的设置,您可以使用以下命令进行更改:
echo deadline > /sys/block/<device>/queue/scheduler
或者
echo cfq > /sys/block/<device>/queue/scheduler
测试您的文件副本...
您也可以通过将elevator=deadline
或附加elevator=cfq
到 GRUB 内核启动行并重新启动来全局执行此操作。
答案2
您可以做几件事。IO 调度程序是总体上最容易实现的,不需要进行任何重大重新配置。
需要考虑的其他一些事情是增加文件系统的块大小。ext 系列的默认值为 4K,在大多数情况下都适用。但是,了解更多有关底层存储的信息很重要。例如,如果您的磁盘在 RAID 阵列中,您可能会发现让块大小等于条带大小会很有帮助。如果您使用的是标准磁盘,请检查它是否使用 4KB 扇区(请参阅 /sys/block//queue/hw_sector_size)。较新的磁盘将使用 4K 扇区。如果您使用的是 4K 扇区,您可能希望进行一些研究以确保您的分区正确排列扇区以获得最佳性能。然而,如今大多数 Linux 发行版都考虑到了这一点。增加文件系统的块大小可以允许将更大的数据块组合在磁盘上,从而减少寻道操作。但是,对于需要少量块的大量文件来说,更大的块大小可能会导致磁盘空间减少得更快。
ext 文件系统还具有一些与 IO 写入/读取屏障有关的选项,了解其中的一些选项可能也会有所帮助。此外,如果您有多个磁盘,您可能希望考虑将日志放在另一个磁盘上。这将减少磁盘上的 IO 负载,从而提高吞吐量。
答案3
使用伊奥尼采.空闲优先级会帮助你。
ionice -c 3 <command>