Linux吃所有的内存,好像它不是针对特定的应用程序

系统没有超载,没有大的内存(RAM)进程,但它只有20-40 MB的空闲空间。

谁正在使用RAM,我应该避免它? (怎么样?)

请参阅: http : //www.linuxatemyram.com

另见: http : //virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html

Linux认为免费的RAM浪费资源。 任何不用于stored procedures的内存都将用作缓冲区来caching最近的磁盘活动等。它将缓冲区刷新到磁盘,以便根据程序内存分配需求腾出空间。

'free'命令将显示缓冲区和caching。 以 – / + buffers / cache开头的行显示了减去缓冲区和caching后真正使用的空闲内存的数量。

total used free shared buffers cached Mem: 373 350 23 0 135 109 -/+ buffers/cache: 105 268 Swap: 511 0 511 

请注意:

  • 这台机器有373MB的RAM,其中350MB正在使用,剩下23MB的内存空间
  • 350MB包含135MBcaching和109MBcaching
  • 当我们减去这些缓冲区和caching量时,实际使用的只有105MB,剩下268MB的内存空间

在需要的时候,caching被丢弃,caching被刷新以释放内存。 当内存需要被释放时,这提供了非常小的开销,并且只要内存可以被用作缓冲器/caching,就会显着提高性能。

所以,如果你想知道空闲的总量(如:程序可用的),请查看' – / + buffers / cache'行中'free'列的数量。

最近在ServerFault中也有类似的问题

为什么Red Hat Linux在系统上报告的可用内存比实际可用的less?

免责声明:我目前是这个问题上得分最高的答案

安装htop实际上已经可视化了。

HTOP

请注意,应用程序占用的内存或真正占用的内存标记为绿色 蓝色和橙色是缓冲区和caching。

操作系统往往不会让好的RAM浪费。 无论是Linux还是Windows,还是Mac OS X ,都可以确保您操作系统可见的所有内存都能很好地使用。 操作系统将使用一切作为caching,除非该内存是特别需要的其他东西。 不同的内存报告实用程序显示“使用内存”单一数字或graphics的方式是一个devise决定,估计用户最可能想知道什么types的内存使用情况。