什么样的configuration优化,如磁盘调度algorithm,build议一个非常写密集的设置?
您应该查看您描述的访问模式的deadline I / O调度程序电梯。
这是一个物理系统还是虚拟的? 如果您有一个硬件RAID控制器,则需要确保具有某种forms的电池或支持闪存的写入caching可用于缓冲和合并写入。
如果这是一个RHEL 6.x系统,请查看调优和调优-ADconfiguration文件 ,根据系统的应用程序设置一些相应的参数。
其他一些有趣的控制器和块设备设置在这里详述: Linux – 真实世界的硬件RAID控制器调整(scsi和cciss)
除了ewwhite给出的链接之外,您还需要查看“ Red Hat性能调优指南” 。 我已经链接了RHEL6的版本。
正确调整性能需要花费很多时间和耐心。 您需要先弄清楚如何准确一致地模拟您的工作负载。 您需要创build自己的方法来捕获基准性能指标,然后捕获每个configuration更改的指标。 很容易改变一堆参数,并在更糟糕的情况下结束,而不知道哪个参数是罪魁祸首。
尽pipe最后期限调度程序可能是一个很好的调度程序,但是它开始testing的同时也会指出,它实际上可能不是您特定工作负载的最佳调度程序。 截止date调度程序是一个确定性的IO调度程序,意味着所有的读写操作都发生在已知的时间范围内。 默认调度程序(完全公平队列CFQ)在每个IO操作之间具有不同的时间间隔。 Tt可能是CFQ调度程序更好,因为它会尝试缓冲和重新sorting写入,以便他们更有效的盘片。 值得指出的是,虽然CFQ调度程序可能会改善特定工作负载的写入性能,但由于IO操作缓冲可能会增加读取延迟。 另外,如果您有硬件,使用NOOP调度程序的IO控制器(例如SBA或RAID控制器)对于这些特定设备可能是最有效的。 原因是NOOP不会尝试对IO操作进行sorting,而是将操作本质上卸载到控制器上。 如果您处于虚拟化环境中,通常最好将NOOP调度程序用于所有来宾操作系统,因为它们不会花费时间对IO操作进行重新sorting,而是将其发送到pipe理程序以使该层处理操作。
如果你不介意的话,祝你好运,如果你不介意的话,请把你的发现报告给别人,以便学习。