调整操作系统参数以改善延迟

调整操作系统参数以改善延迟

我们正在尝试改善 Java 代理应用程序的平均延迟。Java
应用程序从客户端接收消息并将其代理到必要的服务器。
协议是二进制、异步的。

拓扑结构为:

Client (1) - Java proxy (2) - Server (3)

呼叫流程是

(1)-(2)-(3)-(2)-(1)

对于 Java 代理,单向跳跃的要求是平均延迟开销为 2 毫秒。

我们注意到,如果我们增加客户端数量,延迟开销会线性减少。
假设,

1 client -> Java proxy latency overhead = 6 ms.
2 clients -> Java proxy latency overhead = 3 ms.
4 clients -> Java proxy latency overhead = 1.5 ms.

另一方面,即使只有一个客户端,我们也必须遵守延迟要求。

如果我们用 Erlang 实现替换代理的 Java 实现,我们会观察到相同的行为。

我们可以对低级操作系统进行任何调整吗?
Java 代理主机是 2 个 Nehalem CPU X5550 2.67GHz,总共 16 个硬件线程;Red Hat Enterprise Linux Server 版本 5.6

答案1

在您进行测试之前,我会确保 JVM 已预热并设置为实时优先级。您应该能够实现网络延迟低于 0.1 毫秒的延迟。

答案2

您的 Java 代理在等待服务器响应时是否阻塞?这可以解释您看到的时间。

相关内容