gpt4 book ai didi

java - 如何消除 KVM VM 中 java 和 php 进程间进程间通信的 tcp-ip 发送延迟

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:03 25 4
gpt4 key购买 nike

我有一个由 java 部分和 php 部分组成的网络应用程序。当用户发出请求时,php 进程将打开到 java 进程的 tcp/ip 连接。它将在请求期间保持此连接打开,此连接将用于来回发送大量信息。只要该应用程序托管在专用服务器或使用 OpenVZ 的 VM 上,它就会运行得很好。

一旦我尝试将它托管在 KVM VM 上,它就会变得非常慢。这样做的原因是在单个用户请求中,php 进程可以轻松地向 java 进程发送多达 1 或 2000 个 tcp-ip。现在,因为这一切都是通过同一个连接完成的,这真的应该不是问题,但在 KVM VM 上,似乎每次发送都有大约 20 毫秒的延迟,所以现在通常需要 0.1 秒的请求需要 20 秒。

我不是 100% 肯定 KVM 是罪魁祸首,但我已经在使用 OpenVZ 的 3 个不同的托管服务提供商和另外 3 个使用 KVM 的不同托管服务提供商上进行了测试。它在所有 OpenVZ 主机上都运行良好,并且在所有 KVM 主机上都存在发送延迟问题。

O 和我在 java 和 php 端都设置了 tcpnodelay。

知道我可以尝试如何使它在 KVM 上运行吗?

最佳答案

所以回答我自己的问题。看起来您似乎无法避免发送延迟,因为即使它在本地主机上,它仍然必须从虚拟化层向下移动到网络层并备份。

然而,解决方案不是在本地主机上创建 TCP 套接字,而是使用 Unix 套接字。由于 Unix 套接字不以任何方式访问网络层。

作为奖励,使用 Unix 套接字而不是 TCP 套接字使我的应用程序获得了全面的性能提升。包括之前的设置是否正常。

关于java - 如何消除 KVM VM 中 java 和 php 进程间进程间通信的 tcp-ip 发送延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53902687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com