jetty內存怎么調
時間:
本達868由 分享
jetty內存怎么調
很多人會問jetty內存怎么調?使用內存過大怎么辦?下面是學習啦小編收集的一個栗子,大家可以參考一下!
Jetty使用內存過大的解決方案
之前用Jetty做過一個消息通知服務器,主要功能就是其他各個子系統(tǒng)如果有需要push給客戶端消息的就把這個消息發(fā)給我的Server,我用WebSocket來推送給客戶端~
程序上線一段時間之后運維工程師找到我說我的程序占用了16G內存,我的個乖乖,記得設置Xmx為2G的,為么吃掉了這么大的內存呢??!!
經過一番測試,發(fā)現(xiàn)用的并不是應用內存,而是系統(tǒng)的內存,這些內存不歸應用管,而歸JVM管~~
jetty使用的是java的nio ,nio在請求分配bytebuffer時有二種,一種是分配應用內存,一種是分配系統(tǒng)內存~~
如果是嵌入式的方式啟動的Server,加上這么兩行代碼即可。
SelectChannelConnector conn = new SelectChannelConnector();
conn.setUseDirectBuffers(false);
另外,找到Jetty的配置文件,把這個配置寫在配置文件里也是OK的~