buffermem 文件也与 Linux 内核的虚拟内存 VM 子系统的操作密切相关。此文件中的值/proc/sys/vm/buffermem控制应该用于缓冲区内存的内存百分比。重要的是要注意,该百分比是根据系统总内存的百分比计算的。
Red Hat Linux 下 buffermem 参数的默认设置是"2 10 60"
[root@deep] /# echo "70 10 60" >/proc/sys/vm/buffermem |
# Improve virtual memory performance vm.buffermem = 70 10 60 |
[root@deep] /# /etc/rc.d/init.d/network restart |
设置网络参数 [ 确定 ] 启动接口 lo [ 确定 ] 启动接口 eth0 [ 确定 ] 启动接口 eth1 [ 确定 ]
根据/usr/src/linux/Documentation/sysctl/vm.txt文件,第一个参数 80% 表示使用至少 80% 的内存用于缓冲区缓存;即应该用于缓冲区内存的最小内存百分比。最后两个参数 10 和 60 系统未使用,因此我们无需更改默认值。根据服务器中 RAM 的数量,80% 的值可能会有所不同。当您的服务器负载很高并且所有应用程序都在使用时,您可以详细了解系统需要和使用了多少内存。对于 RAM 低于 256 MB 的系统,buffermem 参数的 80% 似乎太多了。在提示符下执行 free-m命令,您的系统将显示系统中可用和已用内存量。执行此命令 free -m 后,检查-/+ buffers/cache值,并获取与最小 (-) 相关的那个值,以设置您的 buffermem 值。
示例 6-1. 对于 128 MB RAM
128 * 80% = 102.4 MB 128 - 102.4 = 25.6 MB |
[root@deep] /#free -m |
total used free shared buffers cached Mem: 124 121 3 30 43 48 -/+ buffers/cache: 29 95 Swap: 128 2 126 |
128 * 70% = 89.6 128 - 89.6 = 38.4 MB |
: 查看/usr/src/linux/Documentation/sysctl/vm.txt以获取有关如何改进与虚拟内存相关的内核参数的更多信息。