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