相关疑难解决方法(0)

Linux:找出正在使用所有 RAM 的进程?

在实际询问之前,要清楚:是的,我知道磁盘缓存,不,这不是我的情况:) 抱歉,对于这个序言:)

我用的是CentOS 5。系统中的每个应用程序都在大量交换,并且系统非常慢。当我这样做时free -m,这是我得到的:

             total       used       free     shared    buffers     cached
Mem:          3952       3929         22          0          1         18
-/+ buffers/cache:       3909         42
Swap:        16383         46      16337
Run Code Online (Sandbox Code Playgroud)

所以,我实际上只有 42 Mb 可以使用!据我了解,-/+ buffers/cache实际上并没有计算磁盘缓存,所以我确实只有42 Mb,对吗?我想,我可能是错的,所以我试图关闭磁盘缓存,但没有效果——图片保持不变。

所以,我决定找出谁在使用我所有的 RAM,然后我就使用top了它。但是,显然,它报告说没有进程正在使用我的 RAM。我最上面的唯一进程是 MySQL,但它使用 0.1% 的 RAM 和 400Mb 的交换。当我尝试运行其他服务或应用程序时相同的图片 - 全部进入交换,top显示未使用 MEM(任何进程的最大值为 0.1%)。

top - 15:09:00 up  2:09,  2 users,  load average: 0.02, 0.16, 0.11
Tasks: 112 total,   1 running, 111 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy, …
Run Code Online (Sandbox Code Playgroud)

memory linux performance

146
推荐指数
5
解决办法
37万
查看次数

什么用了Linux内存?低缓存,低缓冲区,不是虚拟机

首先,是的,我读过LinuxAteMyRAM,这并不能解释我的情况。

# free -tm
             total       used       free     shared    buffers     cached
Mem:         48149      43948       4200          0          4         75
-/+ buffers/cache:      43868       4280
Swap:        38287          0      38287
Total:       86436      43948      42488
#
Run Code Online (Sandbox Code Playgroud)

如上图,-/+ buffers/cache:线条显示表示内存使用率非常高。但是,从 的输出中top,我没有看到任何进程使用了​​超过 100?MB 的内存。

那么,内存有什么用呢?

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
28078 root      18   0  327m  92m  10m S    0  0.2   0:25.06 java
31416 root      16   0  250m  28m  20m S    0  0.1  25:54.59 ResourceMonitor
21598 root …
Run Code Online (Sandbox Code Playgroud)

memory linux

11
推荐指数
1
解决办法
6979
查看次数

标签 统计

linux ×2

memory ×2

performance ×1