直接干:
1.环境,ubuntu版本ubuntu-16.04.2-desktop-amd64,下载日期Thu, Mar 23 2017 11:29:18;
2.安装完成后,设置swap;
3.sudo swapon -s,查看系统是否存在swap;
4.free -m,也可以查看内存情况;
5.df -h,查看磁盘使用情况;
6.sudo dd if=/dev/zero of=/swapfile bs=1G count=4。解释:创建swap文件,块大小bs=1G,块的个数为4个,如果内存为512M,那么可以设置为bs=256M,count=2,或者执行sudo dd if=/dev/zero of=/swapfile bs=1M count=6k (count=1k创建1G的swap,如果要创建6G则count=6k,这种指令执行的比较慢),一般建议swap和内设置一样大,防止出现swap不够用,或者执行sudo fallocate -l 8G /swapfile,这条语句执行的比较快,本人电脑8G内存;
7.ls -lh /swapfile,查看swap信息;
8.sudo chmod 600 /swapfile,设置swap权限,root才有读写权限,如果不设置为root级别可能会出现漏洞;
9.ls -lh /swapfile,再次查看,swap信息发生变化;
10.sudo mkswap /swapfile,通知系统挂载swap;
11.sudo swapon /swapfile,通知系统启用swap;
12.sudo swapon -s,查看信息;
以上完成swap设置,如果想移除swap执行sudo swapoff /swapfile && sudo rm /swapfile,但是如果系统重启,再开机就不能自动使用swap了,接下来继续:
13.sudo gedit /etc/fstab,编辑脚本;
14.打开文件后,最后面添加一行/swapfile none swap sw 0 0,然后保存;
15.重启电脑就好啦,此时的swap的使用就不会受重启的影响了。
调优部分,主要针对两个参数,但是这两个参数只是对系统的建议,具体系统怎么执行,还要看系统心情。一个参数是swappiness,另一个是vfs_cache_pressure
(1)swappiness:
的值是个参考值,是否会发生swap跟当前是哪种page reclaim及系统当前状态都有关系,所以设置了swappiness=0并不代表一定没有swap发生,同时设为0也确实会可能发生OOM。个人仍然认为线上环境设置swappiness=0是没有任何问题的。本人设置为30。
(2)vm.vfs_cache_pressure:
默认值:100。参数意义:控制内核回收再利用用于缓存目录与inode对象的内存的趁势。默认值设为100表示内核以平等的速度去考虑pagecache和swapcache的回收再利用。减小它,会触发内核保持目录与inodes的缓存内存。增大它,会触发内核回收再利用目录与inodes的缓存内存。本人设置为120。
这两参数设置的持久化话问题,大家直接百度就好了,不多说。个人感觉这两个参数没什么用。