gpt4 book ai didi

java - linux上的tcp java连接速率限制

转载 作者:行者123 更新时间:2023-12-01 15:34:32 26 4
gpt4 key购买 nike

我正在 VM(linux centos)上运行 java 服务器,该虚拟机具有 4 个核心、4Gb 内存和 1Gb 堆。这是我注意到的。

内存稳定,即堆小于 600Mb...这是我的应用程序调整,不太担心。通过垃圾收集器统计数据,我发现 gc 花费的平均时间少于 0.06 秒

这是我遇到的问题。

tcp_somaxconn = 1024
tcp_syn_backlog =1024
and tcp_syn_cookies is zero.

我看到的连接速率最大为 230 个连接/秒,高于此值我看到监听队列丢失。我已经验证我的服务器应用程序也以 230 个连接/秒的速度接受新连接。所以不确定为什么我看到监听队列的速度下降到超过 230 个连接/秒。此外,CPU 从未超过 50%。感谢对此的任何帮助..

此外,如果我启用 syn_cookies,行为不会改变..

最佳答案

这很有趣......这里有一些提示:

  1. 您不应启用 syn_cookies。你想禁用它们,这样内核就不会因为认为你受到攻击而减慢速度。您可以通过查看内核日志 (dmesg) 中是否有诸如“端口上可能存在 SYN 泛洪......”之类的消息来验证这一点,在确定一切正常后,您可以再次启用它。

  2. 它是多线程应用程序吗?它真的可以扩展到所有内核吗?

  3. NIO 可以帮助您获得更好的结果,因为它不适用于“每个连接线程”模型。

  4. 在这种情况下,并行 GC 有时可以做得更好。

关于java - linux上的tcp java连接速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9104116/

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