如何确定Linux中的进程内存限制?

rk2*_*010 10 linux memory process out-of-memory

我一直在网上搜索一下java进程可以在linux(red-hat)机器上占用多少内存.(我不是在讨论堆;相反,java 进程占用的全部内存量)

我无权在该机器上执行任何操作.所以我不能简单地执行一个消耗内存的程序,直到内存不足为止.

但是,我确实有权检查配置文件等(例如:我试图执行cat/proc/meminfo,但是我无法理解;它似乎没有任何结果代表我想知道的参数关于).

我在一个单独的红帽机器上尝试了一个java程序 - 我有权执行程序 - 我能够看到java程序长大到3GB左右.

有什么方法可以找出一个进程可以获得多少内存?

bma*_*ies 10

ulimit是你的朋友.Java进程与其他进程没有什么不同.但如果你甚至不能运行ulimit -a,很难回答你的问题.

  • @ rk2010表示任何进程都没有内存使用配额,唯一的硬限制是计算机有多少RAM和交换内存. (2认同)
  • @rk2010 这取决于操作系统是 64 位还是 32 位,对于 32 位操作系统,每个进程只能寻址大约 3.5 GB 的内存。不管怎样,如果你有更多的内存,那么 64 位操作系统是“必需的”。 (2认同)

kvz*_*kvz 6

这是一个有用的读物​​:限制Linux中程序的时间和内存消耗,这会导致超时工具,它允许您按时间或内存消耗来保存进程(及其分支).