我有一个延迟敏感的应用程序。虽然我关心吞吐量,但极低的延迟对我来说更重要。
请建议我如何优化我的服务器,以实现最低可能的延迟--也就是,从网络接口(或inifiniband卡)接收到的请求和发布的响应的最低可能响应时间。
最初的想法是
文章优化服务器和进程以提高速度似乎是一个良好的开端,但其他指点是值得欢迎的。
任何其他建议欢迎
发布于 2010-08-16 10:10:35
首先,我认为您应该安装和使用linux-rt内核。除了少数非常小的代码区域("raw_spinlock关键区域“)之外,这个内核是修补的,允许抢占几乎所有的内核。这是通过用支持优先级继承的互斥替换大多数内核自旋锁,以及将所有中断和软件中断转移到内核线程来实现的。
抢占是指在不需要计算机系统合作的情况下,暂时中断计算机系统正在执行的任务,并打算在以后恢复任务的行为。
读实时抢占概述。这将使您了解事情是如何工作的,这将使您能够对特定应用程序的内核进行微调。
也有RTLinuxFree开发的风河系统,这也有一个商业对应,如果你有钱躺在周围。
对于linux-rt,我建议阅读RT Wiki
也许您的应用程序支持区域贸易协定?
发布于 2010-08-16 21:35:51
也许用硬件时钟频率旋转可能是很重要的?这可能会影响ACPI电源状态的切换,例如,如果您的计算机需要在一段时间内处于空闲状态,并且必须对网络请求作出快速响应的话。或者,如果你需要(非常)精确的时间和日志记录,比如说。
有关更多的讨论,请参见链接文本。我不知道最近的情况,但上次(大约6个月前),硬件时钟选项仍然存在。
https://askubuntu.com/questions/2374
复制相似问题