天天看點

elasticsearch伺服器CPU 占用過高 調整

elasticsearch伺服器CPU100%分析

1、通過top指令查詢占用CPU高的程序ID

然後ps aux | grep [pid]

2、發現線程31342、28478等占用比較多的CPU資源

3、将十進制pid轉換為十六進制的pid

printf “0x%x” 28478      
elasticsearch伺服器CPU 占用過高 調整

4、查詢具體的線程資訊

jstack -l 28354 | grep 6f3e -A 20      
elasticsearch伺服器CPU 占用過高 調整

這裡我們基本上可以确定,目前系統緩慢的原因主要是垃圾回收過于頻繁,導緻 GC 停頓時間較長。

5、我們通過如下指令可以檢視 GC 的情況

jstat -gcutil 28354 1000 10       

28354為程序ID,1000代表每隔1000毫秒檢查一次, 10代表檢查10次, 10也可以省略, 表示不限次數

elasticsearch伺服器CPU 占用過高 調整

可以看到,這裡 FGC 指的是 Full GC 數量,這裡高達 31115,而且還在不斷增長。進而進一步證明了是由于記憶體溢出導緻的系統緩慢。

elasticsearch預設的JVM配置中,Xms、Xmx都為1G,不太夠用,我們修改JVM配置,将Xms、Xmx修改為2G

-Xms2g
-Xmx2g      

繼續閱讀