我见过使用以下命令使用 90% 可用系统内存的技巧之一:
stress --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1.
到目前为止我所理解的是: /proc/meminfo 正在返回可用的系统 RAM。
谁能帮我理解这个命令的作用吗?
答案1
/proc/meminfo
返回各种内存信息,包括:
MemTotal: 3996276 kB
MemFree: 1052516 kB
Buffers: 183884 kB
Cached: 949892 kB
SwapCached: 0 kB
典型的行由三列组成:
- $1 = MemFree:
- 2美元=1052516
- $3 = 千字节
该awk
命令正在执行以下操作:
- 过滤特定条目
MemFree
:'/MemFree/'
- 计算 90% 的
MemFree
值:$2 * 0.9
- 打印计算值,后跟换行符:
printf "%d\n"
该命令的结果$(awk '/MemFree/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)
将返回一个类似的值933357
(基于上面的 MemFree 值)。
stress
最后,指示该命令以千字节为单位分配该内存量(请注意k
后面的$(..)
)。
有关stress
参数的更多信息,请阅读http://linux.die.net/man/1/stress