15
回答
swap最好为物理内存的1.5到2倍之间,请问是什么意思?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

swap最好为物理内存的1.5到2倍之间,请问是什么意思?8g内存该给多少?能否举个例子说明一下,我买了鸟书的linux私房菜,看到这么一句,请各位大牛指点。

我的内存条是 8g,

举报
Deepkit
发帖于4年前 15回/2K+阅
共有15个答案 最后回答: 4年前
就Linux的休眠(hibernate)功能而言,会把当前内存中的内容保存到swap中去。

极端情况下,如果你当前工作用满了8G内存,而且还用去了部分swap空间,而你的swap分区却只分了2G,这时进行系统休眠就会出现swap空间不足的问题。

所以说“swap分区大小是1.5到2倍内存大小”的建议还是有他的道理的。
不在乎硬盘空间,这样分也无所谓。

就我个人而言,我分了swap分区,但我禁用了swap也不用系统休眠:
临时禁用/开启SWAP:
sudo swapoff -a
sudo swapon -a
永久禁用SWAP,注释掉SWAP分区项,重启生效:
sudo nano /etc/fstab

我觉得挂起待机比休眠要好用,虽然会耗电,但快速的恢复是明显的优势,而休眠还要从硬盘读内容到内存。

和windows的虚拟内存类似,就是运行占用内存比较多的程序时,如果内存不够了,可以用SWAP拿来用,如果8G内存了,绝大部分情况下程序也够用了,用不到SWAP,所以如果在意硬盘空间,不设置也行,要不然大部分时间都是浪费硬盘。而且 SWAP速度比内存慢太多,所以如果用到SWAP了,那说明应该加内存了,但预算有限的话也就只能设置SWAP了,速度会慢。突然觉得windows的虚拟内存运行机制不如Linux啊,Linux如果内存够用一般不会用SWAP,但感觉上 windows貌似优化机制不佳,内存够也经常用到虚拟内存。。。如果用图像界面Linux,经常打开多个占用内存的程序不关,比如浏览器开几十个页面,又同时在编程、看电影、听歌、挂机打游戏什么的,如果总内存可能超过实际内存,为了避免不管旧程序就打不开新程序的情况,那设置一定大小的SWAP比较保险。所以综合来说就是看需求了。

引用来自“marsITman”的答案

4g內存以上,理論上就不用分swap
那如果真的要分,1.5到2倍之间,是分多少?
顶部