降低Java占用_如何减少JAVA应用程序的CPU使用率?
Linux機器上有兩個Java進程(A,B)(CentOS 6.5 64位). A使用套接字向B發(fā)送大量二進制數(shù)據(jù). B將數(shù)據(jù)寫入磁盤.每秒將50-100MB數(shù)據(jù)寫入磁盤.在四核處理器上,CPU幾乎100%使用.以前我們運行類似的應用程序但是由C編寫,只使用了25%的CPU.
我們做了很多調(diào)整.我們了解到有一些epoll錯誤,然后我們將JDK版本升級到1.8.我們還做了一些JVM調(diào)優(yōu).現(xiàn)在總CPU使用率比以前低,但我們不滿意.我們認為我們可以減少它.
有很多數(shù)據(jù)寫入磁盤.我們認為磁盤不是瓶頸.因為我們使用大型RAID.我們之前運行了由C編寫的類似應用程序,磁帶帶寬更多,一切正常.
但我們也發(fā)現(xiàn)了一個問題.當內(nèi)核將臟數(shù)據(jù)刷新到磁盤時,CPU使用率將非常高.所以我們增加/ proc / sys / vm / dirty_background_ratio以便盡可能地進行異步刷新.在我們更改了值之后,它似乎可以正常工作,但過了一段時間,然后又出現(xiàn)了高CPU問題.
我們能否為具有高IO帶寬的Java應用程序進行更多性能調(diào)整?
解決方法:
在進行性能調(diào)優(yōu)之前,您需要找出主導CPU時間的因素.
這是一個多方面的主題,您將不得不看看內(nèi)核正在做什么,以什么速度發(fā)出哪些系統(tǒng)調(diào)用,您的訪問模式是什么,文件系統(tǒng)和其他存儲層如何影響各種文件的特征系統(tǒng)操作等
Netflix最近提出了一種方法到get full kernel/userspace/java stacks,這可能是一個有用的起點,但還有許多其他的東西需要監(jiān)控.
標簽:java,linux,jvm,performance
來源: https://codeday.me/bug/20190706/1399355.html
總結(jié)
以上是生活随笔為你收集整理的降低Java占用_如何减少JAVA应用程序的CPU使用率?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中ra怎么解释_JAVA个人相关
- 下一篇: java中求立方根_求解立方根