学习啦 > 学习电脑 > 电脑硬件知识 > 内存知识 > jetty内存怎么调

jetty内存怎么调

时间: 本达868 分享

jetty内存怎么调

  很多人会问jetty内存怎么调?使用内存过大怎么办?下面是学习啦小编收集的一个栗子,大家可以参考一下!

  Jetty使用内存过大的解决方案

  之前用Jetty做过一个消息通知服务器,主要功能就是其他各个子系统如果有需要push给客户端消息的就把这个消息发给我的Server,我用WebSocket来推送给客户端~

  程序上线一段时间之后运维工程师找到我说我的程序占用了16G内存,我的个乖乖,记得设置Xmx为2G的,为么吃掉了这么大的内存呢??!!

  经过一番测试,发现用的并不是应用内存,而是系统的内存,这些内存不归应用管,而归JVM管~~

  jetty使用的是java的nio ,nio在请求分配bytebuffer时有二种,一种是分配应用内存,一种是分配系统内存~~

  如果是嵌入式的方式启动的Server,加上这么两行代码即可。

  SelectChannelConnector conn = new SelectChannelConnector();

  conn.setUseDirectBuffers(false);

  另外,找到Jetty的配置文件,把这个配置写在配置文件里也是OK的~

1323517