【发布时间】:2016-09-08 07:57:44
【问题描述】:
Tomcat 进程在 linux 服务器中消耗更多内存。当我们检查 RAM 几乎使用了 99% 并且 SWAP 也没有使用 20% 时。为什么 Tomcat 进程不使用 SWAP 并使用更多 RAM?
【问题讨论】:
-
大多数 IT 人员会为这种情况而死。 41 年来,我第一次看到它作为一个问题出现。
Tomcat 进程在 linux 服务器中消耗更多内存。当我们检查 RAM 几乎使用了 99% 并且 SWAP 也没有使用 20% 时。为什么 Tomcat 进程不使用 SWAP 并使用更多 RAM?
【问题讨论】:
操作系统的一般设计假设是,未使用的 RAM 将永远被浪费。如果您的系统有 4GB,那么您今天不能使用 2GB,而明天可以使用 6GB。因此,操作系统会尽其所能不让 RAM 闲置,从而浪费它。
有时人们会这样想,“我现在想要释放内存,以便以后可以使用它。”但这很愚蠢。您既可以现在使用它,也可以以后使用它。这里没有权衡。
当系统没有任何内存压力时,它通常会使用很少的交换(如果有的话)。它可能会复制到很长时间未使用的交换信息中。但它可能不会打扰,直到它开始感觉到一些记忆压力。所以非常低的交换使用率是正常的。
【讨论】: