[英]How do I find top 10 or top few CPU intensive threads created by Java process in Linux?
[英]Do Java's threads work like process on linux?
我已經啟動了一個jetty服務器和一個ehcache實例,很快我在啟動另一個jave進程時遇到了linux上的線程限制。
錯誤消息unable to create new native thread
(PS我的Linux操作系統是CentOS 6.2)。
然后我用ps -xH
知道兩個java進程(jetty和ehcache)產生了近800個線程, ps -xH
的總數是1023, ulimit -u
顯示1024。
所以,我的問題是為什么java產生線程但我遇到了進程號的限制?
PS我有足夠的記憶力
因為對於Linux Threads來說,進程基本上是一回事。 它們之間的區別在於線程共享內存,文件描述符等內容,而進程則沒有。
檢查一下 ,以獲得更深入的洞察力。 因此,線程和進程都會計入1023個proccesses的限制。
你可能應該嘗試創建更少的線程,這對我來說似乎是一個巨大的問題。
到目前為止,這是一個過多的線程,至少對於Jetty而言。 除非您每秒向服務器強調數百個請求,否則不應該發生這種情況。 仔細檢查線程是否無限期阻塞。 在任何情況下,配置在排隊或拒絕請求之前允許的最大線程數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.