此bug項目中使用elasticSearch中出現的,原因是,nio事件選擇器,在特性內核下以及jdk6版本中,出現不hold線程,死循環獲取事件的bug,導致cup使用率過高;
此bug在官網已被修復:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6403933
如果不升級版本,
System.setProperty(“org.elasticsearch.common.netty.epollBugWorkaround”,true); 增加此句代碼。
官網修復解決:取消了選擇器,創建一個新的。
if (SelectionKey != null) { // the key you registered on the temporary selector SelectionKey.cancel(); // cancel the SelectionKey that was registered with the temporary selector // flush the cancelled key temporarySelector.selectNow(); } which is safe. Now everything works fine.