Linux内存使用:当交换未使用时,我们可以考虑内存已满吗?

时间:2015-07-22 11:54:56

标签: linux performance memory

我在部署应用程序后检查可用的可用内存。我正在使用以下命令,并且发现可用内存少于20%:

free | grep Mem | awk '{print "Free Memory :"100*($4+$6+$7)/$2"%"}'

但是当我检查top命令时,我发现根本没有使用交换内存。以上命令也不包括交换内存空间。现在我脑子里有几个问题

Snapshot1:

 top - 10:01:07 up 305 days, 11:23,  1 user,  load average: 0.35, 0.22, 0.12
Tasks: 244 total,   1 running, 242 sleeping,   0 stopped,   1 zombie
Cpu(s): 13.4%us, 14.5%sy,  0.0%ni, 69.3%id,  0.8%wa,  0.4%hi,  1.6%si,  0.0%st
Mem:     15952M total,    15817M used,      135M free,      531M buffers
Swap:    16378M total,        0M used,    16378M free,     2567M cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
19983 user1       20   0 3410m 2.9g 4420 S   23 18.9  56733:33 x1             
28390 user2      20   0  621m 216m 1300 S   12  1.4  40201:39 p2               
24781 user1       20   0 1393m 868m 1760 S    9  5.4  27795:12 p3          
13936 user1       20   0  740m 432m 2692 S    6  2.7  15726:39 p4          
30545 user1       20   0  391m  77m 2232 S    6  0.5   2805:05 p5        
 5696 user1       20   0  914m 680m 2180 S    4  4.3   2209:03 p6                
28801 user2      20   0  282m 148m 1432 S    4  0.9  12408:20 p7                
29559 user2      20   0  504m 357m 2028 S    3  2.2   9152:52 p8                
29129 user2      20   0  245m 172m 2004 S    2  1.1   6935:50 p9                
29130 user2      20   0  245m 172m 1996 S    2  1.1   6879:25 p9                
29131 user2      20   0  245m 172m 1996 S    2  1.1   6913:15 p9                
29135 user2      20   0  245m 172m 1996 S    2  1.1   6897:49 p9                
29140 user2      20   0  245m 172m 1996 S    2  1.1   6886:52 p9   

快照2:

top - 10:06:18 up 312 days, 11:29,  1 user,  load average: 0.26, 0.42, 0.31
Tasks: 240 total,   1 running, 238 sleeping,   0 stopped,   1 zombie
Cpu(s): 13.1%us, 11.8%sy,  0.0%ni, 71.8%id,  1.7%wa,  0.5%hi,  1.1%si,  0.0%st
Mem:     15952M total,    15832M used,      119M free,      480M buffers
Swap:    16378M total,        0M used,    16378M free,     2622M cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
19983 user1       20   0 3410m 2.9g 5292 S   18 18.9  58711:30 x1             
28390 user2      20   0  621m 216m 1300 S   12  1.4  41451:12 p2               
24781 user1       20   0 1393m 868m 1760 S    8  5.4  28615:15 p3          
13936 user1       20   0  740m 432m 2692 S    6  2.7  16247:35 p4          
12453 user1       20   0  387m  74m 3056 S    5  0.5 178:45.72 p5        
28801 user2      20   0  282m 148m 1448 S    4  0.9  12794:23 p6                
13252 user1       20   0  850m 665m 2556 S    4  4.2 138:43.83 p7                
29559 user2      20   0  504m 357m 1992 S    3  2.2   9450:05 p8                
29154 user2      20   0  245m 172m 1972 S    3  1.1   7127:40 p9                
29130 user2      20   0  245m 172m 1972 S    2  1.1   7104:03 p9                
29140 user2      20   0  245m 172m 1972 S    2  1.1   7111:48 p9                
29171 user2      20   0  244m 172m 1972 S    2  1.1   7137:48 p9                
29129 user2      20   0  245m 172m 1980 S    2  1.1   7162:12 p9  

我使用正确的方法检查可用空间吗? (当内存使用率太高时我需要发出警报)

2.从2张以下的快照中,我看到免费内存从" 135M免费"至" 119M免费" (请检查mem:top命令行)。但我发现与我的进程(甚至其他)相关的内存没有改变,只有缓冲区和缓存减少了。正如我之前所读,如果没有足够的内存可用于进程,那么这些内存将由操作系统发布。那么我真的应该担心这种变化吗?有没有办法清除这个?

  1. 我的系统总共有Mem:15952M,Swap:总共16378M,那么总可用空间是多少?一旦开始使用交换内存,系统性能是否会下降?
  2. 请指导我

    可用内存输出示例:

    >free 
                 total       used       free     shared    buffers     cached
    Mem:       8183648    7148324    1035324          0     150568    2352956
    -/+ buffers/cache:    4644800    3538848
    Swap:     17149376      24588   17124788
    

0 个答案:

没有答案