配置swap之前,通過(guò) free 和 df 查看 swap 和 磁盤空間情況人灼,目的是通過(guò)配置swap后比較變化唱歧。
1、新建一個(gè)專門的文件用于swap分區(qū)
mkdir /developer/
cd /developer/
dd if=/dev/zero of=swap_file bs=1M count=2048
注:此文件的大小是count的大小乘以bs大小岳颇,上面命令的大小是2GB
2、通過(guò)mkswap命令將上面新建出的文件做成swap分區(qū)并激活
mkswap /developer/swap_file
3颅湘、設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)
vim /etc/fstab
/developer/swap_file swap swap defaults 0 0
4话侧、啟用此交換分區(qū)的交換功能
swapon /developer/swap_file
注意:
1、千萬(wàn)不要開(kāi)啟大于實(shí)際內(nèi)存幾倍的swap分區(qū)闯参。
2瞻鹏、SWAP分區(qū)內(nèi)的數(shù)據(jù)內(nèi)存頻繁進(jìn)行交換會(huì)導(dǎo)致CPU過(guò)高。mysql數(shù)據(jù)庫(kù)在同一時(shí)刻點(diǎn)大量SQL掃描同一張表鹿寨,雖然有索引新博,但還是觸發(fā)大量數(shù)據(jù)加載到內(nèi)存,并且期間還有vacuum操作脚草,導(dǎo)致系統(tǒng)緩存不足赫悄,系統(tǒng)頻繁進(jìn)行數(shù)據(jù)交換。
3馏慨、SWAP開(kāi)啟后導(dǎo)致部分CPU性能損失, 單核服務(wù)器不建議開(kāi)啟, 因?yàn)闀?huì)導(dǎo)致kswapd0進(jìn)程的使用埂淮。
kswapd0進(jìn)程的作用:它是虛擬內(nèi)存管理中,負(fù)責(zé)換頁(yè)的写隶,操作系統(tǒng)每過(guò)一定時(shí)間就會(huì)喚醒kswapd 倔撞,看看內(nèi)存是否緊張,如果不緊張樟澜,則睡眠误窖,在 kswapd 中叮盘,有2 個(gè)閥值,pages_hige 和 pages_low霹俺,當(dāng)空閑內(nèi)存頁(yè)的數(shù)量低于 pages_low 的時(shí)候柔吼,kswapd進(jìn)程就會(huì)掃描內(nèi)存并且每次釋放出32 個(gè)free pages,直到 free page 的數(shù)量到達(dá)pages_high丙唧。通過(guò)阻止kswapd0進(jìn)程過(guò)渡活躍地消耗CPU的方法是設(shè)置大頁(yè)內(nèi)存愈魏。