我编写了一个解析器来读取 auth.log。出于某种原因,在解析时auth.log
我发现它VSZ
大于总物理内存,即2GB
。根据 auth.log 的大小以及读取器的运行时间,VSZ
它会增加(有时最多可达 ~8GB)。
这正常吗?内存消耗如此大的原因可能是什么?
# ps aux
USER PID CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 17547 0.7 1.4 3123744 30820 pts/2 Sl+ Jul30 11:42 ./reader auth.log
# free
total used free shared buffers cached
Mem: 2063568 1842232 221336 0 179084 1057680
-/+ buffers/cache: 605468 1458100
Swap: 4032504 288 4032216
答案1
这很正常。虚拟内存非常便宜,实际上是免费的,因此几乎没有理由减少对它的消耗。