我有一台配备 64 GiB RAM 的服务器,运行 32 位 Debian GNU/Linux v7.9:
# uname -a
Linux srv1 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u5 i686 GNU/Linux
# free -m
total used free shared buffers cached
Mem: 64203 8352 55850 0 134 5861
-/+ buffers/cache: 2356 61847
Swap: 8582 0 8582
问题是内存处于未使用状态,但可用于缓存从而提高系统性能。
我有另一台具有相同硬件的服务器,它运行 64 位 Debian GNU/Linux v8.1,并且不是有这样的问题:
# uname -a
Linux srv2 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
# free -m
total used free shared buffers cached
Mem: 64513 62750 1763 45 10235 42048
-/+ buffers/cache: 10466 54047
Swap: 8582 39 8543
第一台服务器实际上比第二台服务器更忙,所以问题不在于它没有足够的数据来缓存。此外,第一台服务器也没有那么忙,因此缓存很快就会过期,因为用户空间进程对内存的需求很高。
您能告诉我为什么第一台服务器上的内存未被使用吗?
一些补充说明:
- 服务器运行 Debian 内核
- 我没有做过自定义 /proc/sys/vm 修改
- 这些服务器用于相同的目的并运行相同的软件
- 多台服务器也存在此问题
- 我在这些服务器上看到的最大缓存大小约为 7-8 GiB