創建swap的方式方法與swap的優缺點說明
背景
發現阿里雲的機器默認關閉了swap
但是自己的內存設置又比較誇張.
32G內存設置了20G的堆區.
但是實際上內存使用了 27.5G
然後可用內存只剩下 300M 外加 2G的 buffer 跟CPU的cache
但是產品會宕機
準備創建上一塊swap..
創建過程
dd if=/dev/zero of=/swapfile bs=1M count=12K
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile
注意 我這邊不準備設置到 fstab 裏面去
如果必須適
/swapfile swap swap defaults 0 0
測試驗證
創建之前:
free -g
total used free shared buff/cache available
Mem: 45 17 2 0 26 27
Swap: 0 0 0
創建文件, 注意建議改改文件屬主
創建之後
free -g
total used free shared buff/cache available
Mem: 45 17 0 0 28 27
Swap: 11 0 11
關於swap的取捨
內存越來越便宜, CPU的算力很難提升.
爲了產品的快速發展, 還是應該增加內存.
不管是應用還是數據庫
如果大量的想要讀取或者是寫入的內容能夠在內存中安家
那麼系統的速度會非常快速.
如果需要swap in 和swap off
必須進行一次強行的上下文切換, 到內核態
將文件從磁盤讀出或者是寫入.
一方面有切換的損失, 另一方面也有服務等待IO的過程
會導致產品性能指數級下降.
內存的時延基本上 60ns級別. 磁盤是 6ms 的級別
差了十萬倍. 會導致系統嚴重出問題.
保留swap 可以保證產品穩定, 減少倍OOM killer 的概率
但是會對性能有極壞的負面影響.