最近項目中遇到一個令人頭疼的問題,畢竟因為工作需要剛學elasticsearch,也沒有去關注elasticsearch的配置問題,安裝好默認把它當做數據庫一樣去使用,這導致接下來的項目直接掛掉......
當做壓力測試的時候,也就五十個請求url,項目突然莫名其妙掛掉...這個不知道什么原因。去服務器查看進程,發現elasticsearch的CPU占有率達到接近50%(這里指哪怕我停掉了相關的服務),甚至偶爾飆升更高,對於部署不少項目的服務器。。。這就是災難級別的
后來查看elasticsearch的日志,發現gc.log中幾乎每秒都要觸發一次GC full GC。內存不夠用,又沒有內存可以回收,所以GC也不斷,導致CPU這么高,大部分都用在gc上面了。
處理:調整elasticsearch可使用的內存大小。編輯config/jvm.options,調整Xms和Xmx的大小,由原來的默認的256m調整為4g。(官方建議這個值不要超過物理內存的50%,也不要超過32G。詳見官網說明)接着重啟elasticsearch。然后觀察cpu,雖然偶爾飆升,但總體上是正常的,查詢也快了。