望著業(yè)務(wù)和錢(qián)包!對(duì)Linux交換分區(qū)(Swap)的思考及實(shí)戰(zhàn)配置

圖0

1 前言

Linux系統(tǒng)中物理內(nèi)存不足時(shí)播急,操作系統(tǒng)會(huì)將運(yùn)行中的程序(比較閑的程序)暫時(shí)拿到交換分區(qū)(Swap)中,以保證物理內(nèi)存來(lái)運(yùn)行其它程序售睹。等Swap中的程序要運(yùn)行時(shí)桩警,再?gòu)腟wap分區(qū)中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中。

2 使用背景

現(xiàn)在服務(wù)器內(nèi)存越來(lái)越大侣姆,動(dòng)不動(dòng)就16G生真、32G、64G甚至上百G捺宗,操作系統(tǒng)官網(wǎng)也給建議盡量使用系統(tǒng)物理內(nèi)存柱蟀,交換分區(qū)(SWAP)在應(yīng)用中所占的比例越來(lái)越小,甚至不使用了蚜厉。

可是對(duì)于個(gè)人长已、小個(gè)體甚至小微企業(yè)來(lái)說(shuō)服務(wù)器的費(fèi)用還是能省則省,內(nèi)存已然捉襟見(jiàn)肘昼牛。本人有一臺(tái)1核/2G的服務(wù)器和一臺(tái)2核/4G的服務(wù)器术瓮,部署了五六個(gè)應(yīng)用后就到極限了,動(dòng)不動(dòng)就崩潰了贰健。

特別在微服務(wù)大行其道的今天胞四,一個(gè)項(xiàng)目上去內(nèi)存就占滿了。所以伶椿,再嚼嚼交換分區(qū)辜伟,一切為了錢(qián)。

3 Swap分區(qū)大小選擇

Swap分區(qū)大小設(shè)置的建議:

  1. 物理內(nèi)存小于2GB脊另,Swap建議為物理內(nèi)存的2倍导狡;
  2. 物理內(nèi)存2GB~8GB,Swap分區(qū)大小等于物理內(nèi)存偎痛;
  3. 物理內(nèi)存8GB~64GB旱捧,Swap分區(qū)大小最小為8G;
  4. 物理內(nèi)存大于64GB踩麦,Swap分區(qū)至少為16G枚赡;

事實(shí)上氓癌,Swap分區(qū)的大小并不取決于物理內(nèi)存的量,而是根據(jù)業(yè)務(wù)場(chǎng)景标锄,客戶需求和系統(tǒng)中內(nèi)存的負(fù)荷顽铸,所以拋開(kāi)業(yè)務(wù)場(chǎng)景、顯示來(lái)談Swap意義并不大料皇;如果我的服務(wù)器內(nèi)存很大谓松,也不會(huì)瞎折騰O(∩_∩)O哈哈~

圖1

4 何時(shí)使用Swap

不是等所有的物理內(nèi)存都消耗完畢之后,才會(huì)去使用Swap的空間践剂,什么時(shí)候使用是由swappiness參數(shù)值控制及系統(tǒng)調(diào)度的鬼譬。

目前云服務(wù)器的Swap起始狀態(tài)都是0,swappiness也為0逊脯,這就表示只能使用物理內(nèi)存优质,如下圖:

cat /proc/sys/vm/swappiness
圖2

該值在CentOS 6上是60,在CentOS 7上建議是30军洼,可以看出隨著硬件的降價(jià)巩螃,交換分區(qū)的比重越來(lái)越輕了。

swappiness設(shè)置為0時(shí)會(huì)最大限度使用物理內(nèi)存匕争,然后才是Swap空間避乏;設(shè)置為100的時(shí)候表示積極的使用swap分區(qū),并且把內(nèi)存上的數(shù)據(jù)及時(shí)的搬運(yùn)到swap空間里面甘桑。

現(xiàn)在生產(chǎn)服務(wù)器用戶動(dòng)不動(dòng)上百萬(wàn)拍皮,內(nèi)存上百G,對(duì)用戶體驗(yàn)跑杭,相應(yīng)速度都要求極高铆帽,我們可以降低系統(tǒng)對(duì)Swap的使用,甚至全部使用內(nèi)存德谅。

5 如何修改swappiness參數(shù)

5.1 臨時(shí)性修改爹橱,系統(tǒng)重啟恢復(fù)默認(rèn)

sysctl vm.swappiness=10

cat /proc/sys/vm/swappiness
圖3

5.2 永久修改,重啟生效

在/etc/sysctl.conf 文件里添加如下參數(shù):

vm.swappiness=10

# 加載配置
sysctl -p
圖4

6 創(chuàng)建交換分區(qū)

云服務(wù)器默認(rèn)交換分區(qū)為0窄做,默認(rèn)只使用物理內(nèi)存宅荤;我的小服務(wù)器只能手動(dòng)設(shè)置開(kāi)啟交換分區(qū)咯!下面是創(chuàng)建并使用交換分區(qū)的步驟浸策。

6.1 創(chuàng)建Swap分區(qū)

/dev/zero文件代表一個(gè)永遠(yuǎn)輸出0的設(shè)備文件,可以用它來(lái)創(chuàng)建空文件惹盼。后兩個(gè)參數(shù)可以控制文件大小庸汗。

dd if=/dev/zero of=/mnt/swap bs=512 count=8388616

我的服務(wù)器內(nèi)存為4G,根據(jù)建議Swap大小設(shè)置為4G手报,創(chuàng)建過(guò)程有點(diǎn)慢蚯舱,需要耐心等待改化。

圖5

注意:創(chuàng)建swap大小為bs*count=4294971392(4G)

6.2 格式化swap文件

mkswap /mnt/swap
圖6

6.3 啟用swap文件(上文已提到)

  • 臨時(shí)調(diào)整
sysctl -w vm.swappiness=60
  • 永久調(diào)整,需要重啟服務(wù)器
vim  /etc/sysctl.conf
vm.swappiness=60

# 加載配置
sysctl -p

6.4 激活使用這個(gè)swap文件

  • 激活swap文件
swapon /mnt/swap
圖7
  • 設(shè)置自動(dòng)掛載交換分區(qū)
echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

6.5 查看交換分區(qū)狀態(tài)

swapon -s

free -m
圖8

可以看到枉昏,系統(tǒng)并沒(méi)有使用到我創(chuàng)建的交換空間陈肛,我的物理內(nèi)存還剩1G,后面跑下程序試試兄裂。

7 刪除交換分區(qū)

7.1 停止交換分區(qū)

swapoff /mnt/swapfile

7.2 刪除/etc/fstab中的自動(dòng)掛載

vim /etc/fstab

# 注釋或刪除掉
# /mnt/swapfile swap swap defaults 0 0

7.3 刪除分區(qū)文件

rm /mnt/swapfile

8 總結(jié)

swappiness的值為0~100句旱,我的CentOS 7設(shè)置為60,也就是內(nèi)存使用到40%就會(huì)使用交換分區(qū)晰奖。

如果業(yè)務(wù)谈撒、經(jīng)濟(jì)允許,還是使用物理內(nèi)存好匾南,畢竟內(nèi)存速度比磁盤(pán)快得多啃匿;同時(shí)交換分區(qū)如果經(jīng)常大量使用,會(huì)造加大系統(tǒng)io開(kāi)銷(xiāo)蛆楞,所以該升級(jí)內(nèi)存升級(jí)內(nèi)存溯乒,該調(diào)整參數(shù)調(diào)整參數(shù)。

另外有一種說(shuō)法豹爹,使用交換分區(qū)(Swap)會(huì)縮短硬盤(pán)使用壽命裆悄,這個(gè)沒(méi)驗(yàn)證過(guò),同時(shí)我是用的是云服務(wù)器帅戒,無(wú)所謂了灯帮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市逻住,隨后出現(xiàn)的幾起案子钟哥,更是在濱河造成了極大的恐慌,老刑警劉巖瞎访,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腻贰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扒秸,警方通過(guò)查閱死者的電腦和手機(jī)播演,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伴奥,“玉大人写烤,你說(shuō)我怎么就攤上這事∈搬悖” “怎么了洲炊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我暂衡,道長(zhǎng)询微,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任狂巢,我火速辦了婚禮撑毛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唧领。我一直安慰自己藻雌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布疹吃。 她就那樣靜靜地躺著蹦疑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萨驶。 梳的紋絲不亂的頭發(fā)上歉摧,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音腔呜,去河邊找鬼叁温。 笑死,一個(gè)胖子當(dāng)著我的面吹牛核畴,可吹牛的內(nèi)容都是我干的膝但。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谤草,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼跟束!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丑孩,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤冀宴,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后温学,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體略贮,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年仗岖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逃延。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轧拄,死狀恐怖揽祥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情檩电,我是刑警寧澤拄丰,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布桅打,位于F島的核電站,受9級(jí)特大地震影響愈案,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鹅搪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一站绪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丽柿,春花似錦恢准、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至坠非,卻和暖如春敏沉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炎码。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工盟迟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潦闲。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓攒菠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親歉闰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辖众,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容