Java中使用Disruptor时需要注意哪些问题
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇文章给大家分享的是有关Java中使用Disruptor时需要注意哪些问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。发现占用CPU
千家信息网最后更新 2025年01月23日Java中使用Disruptor时需要注意哪些问题
本篇文章给大家分享的是有关Java中使用Disruptor时需要注意哪些问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
发现占用CPU时间超过100%的进程
首先是在服务器上用top命令查看服务器状态,发现有一个应用程序占用的CPU时长超过100%,如图:
我根据进程号查了一下,发现是我的一个Java游戏后台服务,有一个CPU几乎被占满,因此继续排查究竟是什么代码导致了这种情况。
用top -Hp 27538
将这个进程的所有线程显示出来,按照CPU占用时间排序,看到了这个结果:
27658线程占用了近乎所有的CPU时间,而且一直都是,因此查看这个进程的详细信息。
用jstack pid > pid.log
命令将该进程的进程快照输出到一个文件中,下载下来。
将27658转换为16进制0x6c0a后在线程快照中查询(因为线程快照中线程ID都是16进制存放,所以需要转换):
"disruptor-0" #27 prio=5 os_prio=0 tid=0x00007fa100c58000 nid=0x6c0a runnable [0x00007fa0ae080000]
java.lang.Thread.State: RUNNABLE
at com.lmax.disruptor.BusySpinWaitStrategy.waitFor(BusySpinWaitStrategy.java:39)
at com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
at java.lang.Thread.run(Thread.java:748)
这是Disruptor的一个堆栈,为了更直观地查看线程的状态信息,可以将快照上传到专门的分析平台上。
(博主本人对于进程快照分析也是处于新手阶段,如果大家有什么建议或者意见,欢迎在下方留言。)
分析Disruptor为何会占用整个CPU
根据上面快照的分析,实际是Disruptor的等待策略相关的线程所导致的,查看BusySpinWaitStrategy
类,发现有相关说明:
* This strategy will use CPU resource to avoid syscalls which can introduce latency jitter. It is best
* used when threads can be bound to specific CPU cores.
现在终于知道了,原来是因为这个策略就是让线程绑定了一个CPU核心,自然其CPU占用时间就超过100%了。
以上就是Java中使用Disruptor时需要注意哪些问题,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
线程
进程
快照
时间
分析
服务
问题
信息
命令
就是
更多
服务器
状态
知识
策略
篇文章
进制
实用
直观
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
julia 语言数据库
mysql数据库没有密码
软件开发公司有什么优惠政策
计算机网络技术可专升本吗
宁河软件开发哪家有名
安卓手机做samba服务器
服务器里怎么做32k的指令
邢临高速服务器
安卓系统软件开发入门
江津软件开发培训
服务器的网络授权属地化管理
新思路服务器连接失败
重庆翔民软件开发有限公司
友商商场软件开发
从损坏的数据库中提取数据库
网络安全秘密协议
网络安全讲课比赛视频
我的世界服务器极限生存怎么开
个人多媒体管理软件破解带数据库
莆田飞天网络技术有限公司
绝地求生更改默认服务器
数据库有哪些岗位要求
网络安全宣传活动作用
网络安全谈教学反思
山东大学网络安全学院导师
阿里云的服务器的安全机制
国网全场景网络安全防护架构
关于疫情的网络安全班会
json如何导入数据库中
软件开发安全控制