我在部署应用程序后检查可用的可用内存。我正在使用以下命令,并且发现可用内存少于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命令行)。但我发现与我的进程(甚至其他)相关的内存没有改变,只有缓冲区和缓存减少了。正如我之前所读,如果没有足够的内存可用于进程,那么这些内存将由操作系统发布。那么我真的应该担心这种变化吗?有没有办法清除这个?
请指导我
可用内存输出示例:
>free
total used free shared buffers cached
Mem: 8183648 7148324 1035324 0 150568 2352956
-/+ buffers/cache: 4644800 3538848
Swap: 17149376 24588 17124788