首页 > 技术文档 > Debian、CentOS 物理内存和虚拟内存Swap的使用比重的设定,手动释放内存命令
2015
12-18

Debian、CentOS 物理内存和虚拟内存Swap的使用比重的设定,手动释放内存命令

无它,给自己留下爪子,以备日后使用

#vi /etc/sysctl.conf

添加以下三行,下面有解释

vm.swappiness=10
vm.vfs_cache_pressure=200
vm.lowmem_reserve_ratio = 256 64 32

#sysctl -p    /立即生效

第一行 vm.swappiness=10,使用物理内存和虚拟内存的比重数值在0和100之间,系统一般默认为60,我这里设置为10,让系统尽量多、积极使用物理内存来加快系统速度。(当然,要是物理内存不够的VPS,想以虚拟内存的慢速度换取更多的空闲物理内存来运行系统,这个值可以设置到80,甚至100,关键是看自己机子的物理内存的大小了)

第二行 vm.vfs_cache_pressure=200,缺省值是100,加大这个参数设置了虚拟内存回收directory和i-node缓冲的倾向,这个值越大,回收的倾向越严重。也就是说让尽可能腾出多的虚拟内存,过时的废数据就让系统赶紧清掉。

第三行 vm.lowmem_reserve_ratio = 256 64 32,这个参数的设定,是与min_free_kbytes相关的,min_free_kbytes是设定系统保持多少的空闲内存,也有不少人直接设定min_free_kbytes为固定值,(可以网上找看这个设定的资料),我是建议修改lowmem_reserve_ratio,这个设定是让系统在“低//高”(low/min/high)标签三个标签中自行去调整触发回收内存机制,究竟具体什么意思,说实话我没搞懂,有兴趣的可以执行 #cat /proc/zoneinfo,分析一下执行结果。


 

#sync

#echo 3 > /proc/sys/vm/drop_caches

 

Linux管理内存的方式其实是很优异的,很多时候并不需要手动释放内存。但各种蜘蛛可不会理会网站资源的压力,除了向各大搜索引擎申请搜索压力之外(其实没卵用,它们不会听我们的),除了封锁个别特别勤快的IP之外,别无它法了,只有站长们手动清理内存,甚至要Reboot服务器。


最后显示一下我当前 /etc/sysctl.conf 的文件设置

fs.file-max = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_max_tw_buckets = 20000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_max_orphans = 262144
vm.swappiness = 10
vm.vfs_cache_pressure = 200
vm.lowmem_reserve_ratio = 256 64 32