加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java TCP / IP套接字性能问题

发布时间:2020-12-14 16:45:26 所属栏目:Java 来源:网络整理
导读:我们的应用程序通过 Java中的TCP / IP套接字读取数据非常快.我们正在使用具有非阻塞套接字和选择器的NIO库来表示准备阅读.平均来说,读取和处理读取数据的整体处理时间是毫秒. 然而,我们经常看到10-20毫秒的峰值. (在 Linux上运行). 使用tcpdump,我们可以看到
我们的应用程序通过 Java中的TCP / IP套接字读取数据非常快.我们正在使用具有非阻塞套接字和选择器的NIO库来表示准备阅读.平均来说,读取和处理读取数据的整体处理时间是毫秒.
然而,我们经常看到10-20毫秒的峰值. (在 Linux上运行).

使用tcpdump,我们可以看到tcpdump读取2个谨慎消息之间的时差,并将其与我们的应用程序时间进行比较.我们看到tcpdump似乎没有延迟,而应用程序可以显示20毫秒.

我们非常确定这不是GC,因为GC日志几乎没有显示完整的GC,而在JDK 6(从我的理解)中,默认的GC是并行的,所以它不应该暂停应用程序线程(除非做全面的GC) .

它看起来好像Java的Selector.select(0)方法有一些延迟,以返回准备读取,因为在TCP层,数据已经可以被读取(并且tcpdump正在读取它).

附加信息:在峰值负载下,我们正在处理每个消息大约6,000 x 150字节平均值,或每秒大约900 MB.

解决方法

伊甸园收藏仍然招致STW暂停,所以根据分配行为,20分钟可能是完全正常的堆大小/活动集的大小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读