降低Java占用_如何减少JAVA应用程序的CPU使用率?

Linux机器上有两个Java进程(A,B)(CentOS 6.5 64位). A使用套接字向B发送大量二进制数据. B将数据写入磁盘.每秒将50-100MB数据写入磁盘.在四核处理器上,CPU几乎100%使用.以前我们运行类似的应用程序但是由C编写,只使用了25%的CPU.

我们做了很多调整.我们了解到有一些epoll错误,然后我们将JDK版本升级到1.8.我们还做了一些JVM调优.现在总CPU使用率比以前低,但我们不满意.我们认为我们可以减少它.

有很多数据写入磁盘.我们认为磁盘不是瓶颈.因为我们使用大型RAID.我们之前运行了由C编写的类似应用程序,磁带带宽更多,一切正常.

但我们也发现了一个问题.当内核将脏数据刷新到磁盘时,CPU使用率将非常高.所以我们增加/ proc / sys / vm / dirty_background_ratio以便尽可能地进行异步刷新.在我们更改了值之后,它似乎可以正常工作,但过了一段时间,然后又出现了高CPU问题.

我们能否为具有高IO带宽的Java应用程序进行更多性能调整?

解决方法:

在进行性能调优之前,您需要找出主导CPU时间的因素.

这是一个多方面的主题,您将不得不看看内核正在做什么,以什么速度发出哪些系统调用,您的访问模式是什么,文件系统和其他存储层如何影响各种文件的特征系统操作等

Netflix最近提出了一种方法到get full kernel/userspace/java stacks,这可能是一个有用的起点,但还有许多其他的东西需要监控.

标签:java,linux,jvm,performance

来源: https://codeday.me/bug/20190706/1399355.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值