VPS:如何处理服务器没有交换?

我最近在VPS上部署了一个Java应用程序,但是它会一直崩溃,因为JVM会在一段时间内耗尽内存。 我从来没有在其他“低内存”服务器上的这个问题,由于交换,但在这个VPS,这是不同的:没有交换,只有50%的实际512毫米的RAM“可以使用”(他们说256mbs是保证) 。 有什么办法可以限制内存消耗吗? 我试图使用xmsvariables,但没有多大帮助。 我也试图把交换到一个文件,但这是不允许的。

提前致谢

是的,你可以限制Java内存消耗。 在这里例如看: http : //viralpatel.net/blogs/2009/01/jvm-java-increase-heap-size-setting-heap-size-jvm-heap.html

但对于java世界来说256M是非常小的数量。 我build议你获得更好的VPS。

您可以将虚拟机的内存限制在VM启动参数中。 说,如果一个应用程序需要1GB,它需要1GB。 限制虚拟机不会帮助(应用程序可能会因内存不足而exception崩溃)。

这几天512mb非常less。 256Mb甚至更低。 根据应用程序,更好的解决scheme将是“让服务器能够运行应用程序”。

看起来您正在使用基于OpenVZ或Virtuozzo的VPS。 如果是这样,向/ etc / profile和/etc/init.d/*启动脚本添加“ulimit -s 1024”可能是值得的。 OpenVZ和Virtuozzo内存记帐计算为实际使用的堆栈保留的写时复制内存,并且保留的堆栈内存的默认值非常高(根据您的发行版为8到10Mb)。