Linux系統(tǒng)的swap分區(qū)

1. 什么是swap分區(qū)

Swap分區(qū)在系統(tǒng)的物理內(nèi)存不夠用的時候末秃,把物理內(nèi)存中的一部分空間釋放出來剿涮,以供當前運行的程序使用僻爽。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序顿锰,這些被釋放的空間被臨時保存到Swap分區(qū)中蛔糯,等到那些程序要運行時陈瘦,再從Swap分區(qū)中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中幌甘。swap分區(qū)是從磁盤空間劃分而來,有的是單獨使用一個分區(qū)痊项,有的是把一個大文件當做swap锅风。

2. 官方關(guān)于swap設(shè)置

  • Redhat6.4 官方推薦(我們使用CentOS 6.4)
    推薦的系統(tǒng)交換空間
系統(tǒng)中的RAM數(shù)量   建議交換空間      如果允許休眠,建議使用交換空間
?2GB               RAM的2倍                 RAM數(shù)量的3倍
> 2GB - 8GB      等于RAM的數(shù)量               RAM的2倍
> 8GB - 64GB        至少4 GB                 RAM的1.5倍
> 64GB              至少4 GB                  不建議休眠

因為有些系統(tǒng)會允許休眠狀態(tài)鞍泉,如果不設(shè)置swap會無法啟動皱埠,就像windows系統(tǒng)使用休眠設(shè)置虛擬內(nèi)存一樣。

  • Mysql 5.6 和5.7的建議
    mysql5.6

    是說在物理內(nèi)存足夠的情況下,可以刪除swap,因為系統(tǒng)在有些情況下會及時內(nèi)存夠用使用swap,若使用會因為I/0變高導(dǎo)致mysql故障咖驮。Mysql建議刪除边器。
    oracle建議

    另外在其它博客中看到下面一個推薦設(shè)置,當然我不清楚其怎么得到這個標準的托修。是否合理也無從考證忘巧。可以作為一個參考睦刃。
    4G以內(nèi)的物理內(nèi)存砚嘴,SWAP 設(shè)置為內(nèi)存的2倍。
    4-8G的物理內(nèi)存涩拙,SWAP 等于內(nèi)存大小枣宫。
    8-64G 的物理內(nèi)存,SWAP 設(shè)置為8G吃环。
    64-256G物理內(nèi)存,SWAP 設(shè)置為16G洋幻。
    當然這么多建議標準郁轻,很讓人無所適從,不知道該怎么設(shè)置。其實根據(jù)系統(tǒng)實際情況和內(nèi)存的負荷綜合考慮好唯,但是實際情況又是什么樣呢竭沫?
    個人建議從如下幾個考慮:
  1. 物理內(nèi)存空間是否在峰值也可以滿足要求,不滿足建議設(shè)置swap防止內(nèi)存溢出導(dǎo)致主機宕機骑篙,當然設(shè)置不宜過大蜕提,占用磁盤空間。
  2. 磁盤I/O是否足夠靶端,使用磁盤I/O值過低或者其他業(yè)務(wù)要求高谎势,不建議設(shè)置swap。由于使用swap需要頻繁寫入磁盤杨名,使用固態(tài)磁盤不建議設(shè)置脏榆。
  3. 服務(wù)器安裝的具體的應(yīng)用,比如Mysql等不推薦設(shè)置台谍,可以不設(shè)置或者修改參數(shù)swappiness來控制的须喂,默認值為 60意思是說在內(nèi)存使用40%的情況下就使用swap空間,可以將值設(shè)置為10 或者設(shè)置0趁蕊,優(yōu)先使用物理內(nèi)存坞生。

3. 如何增加或者刪除swap分區(qū)

    1. 查看swap空間和使用情況
[root@localhost-zabbix ~]# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   2097144 0   -1
[root@localhost-zabbix ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1877        565       1311          0        132        188
-/+ buffers/cache:        244       1632
Swap:         2047          0       2047
    1. 關(guān)閉swap
[root@localhost-zabbix ~]# swapoff /dev/dm-1
[root@localhost-zabbix ~]# swapon -s
Filename        Type        Size    Used    Priority
    1. 啟用之前關(guān)閉分區(qū)
[root@localhost-zabbix ~]# swapon /dev/dm-1
[root@localhost-zabbix ~]# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   2097144 0   -1
    1. 縮小Swap分區(qū)
      如果是增大Swap分區(qū)大小,那么就需要擴展正在使用的swap分區(qū)的邏輯卷,此處使用lvreduce命令收縮邏輯卷
[root@getlnx14uat ~]# lvreduce -L 8G /dev/mapper/VolGroup00-LogVol01
  WARNING: Reducing active logical volume to 8.00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol01? [y/n]: y
 Reducing logical volume LogVol01 to 8.00 GB
 Logical volume LogVol01 successfully resized
[root@getlnx14uat ~]# mkswap /dev/mapper/VolGroup00-LogVol01 #格式化
Setting up swapspace version 1, size = 8589930 kB
[root@getlnx14uat ~]# swapon -s
Filename                                Type            Size    Used    Priority
[root@getlnx14uat ~]# swapon /dev/mapper/VolGroup00-LogVol01
[root@getlnx14uat ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/VolGroup00-LogVol01         partition       8388600 0       -1
    1. 增大swap空間
      如果磁盤還有剩余未分配空間可以新分區(qū)swap或者增大之前的swap
      如果沒有磁盤未分配掷伙,可以新建分區(qū)文件是己,來增大swap
[root@localhost-zabbix ~]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000
記錄了1024000+0 的讀入
記錄了1024000+0 的寫出
1048576000字節(jié)(1.0 GB)已復(fù)制,2.69212 秒炎咖,389 MB/秒
[root@localhost-zabbix ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/vg_localhostzabbix-lv_root   18G  4.7G   12G  29% /
tmpfs                                   939M     0  939M   0% /dev/shm
/dev/sda1                               485M   33M  427M   8% /boot
[root@localhost-zabbix ~]# mkswap /home/swap
mkswap: /home/swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=74c16b0d-7d88-4384-b41e-b12cc93d4bbf
[root@localhost-zabbix ~]# cd /home/
[root@localhost-zabbix home]# ls
swap
[root@localhost-zabbix home]# mkswap swap 
mkswap: swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=7677912c-b337-4e83-9003-b736dec93d31
[root@localhost-zabbix home]# free -m
             total       used       free     shared    buffers     cached
Mem:          1877       1611        265          0        135       1192
-/+ buffers/cache:        283       1593
Swap:         2047          0       2047
[root@localhost-zabbix home]# swapon swap 
[root@localhost-zabbix home]# free -m
             total       used       free     shared    buffers     cached
Mem:          1877       1612        265          0        135       1192
-/+ buffers/cache:        284       1592
Swap:         3047          0       3047
[root@localhost-zabbix home]# swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   2097144 0   -1
/home/swap                              file        1023992 0   -2

我們可以看到上面是有分區(qū)文件的方式增大了swap空間赃泡。但是這里還有個問題就是重啟系統(tǒng)以后swap還是會變回去,這里需要修改/etc/fstab
增加:/home/swap swap swap default 0 0

刪除剛剛增加swap

swapoff /home/swap
rm -rf /home/swap
vi /etc/fstab
/home/swap swap swap default 0 0

是有新的分區(qū)新建swap:
使用fdisk來創(chuàng)建交換分區(qū)(假設(shè) /dev/sdb2 是創(chuàng)建的交換分區(qū))

mkswap /dev/sdb2
swapon /dev/sdb2
vi /etc/fstab
/dev/sdb2 swap swap defaults 0 0
    1. 修改swappiness
swappiness參數(shù)值說明
vm.swappiness = 0  僅在內(nèi)存不足的情況下--當剩余空閑內(nèi)存低于vm.min_free_kbytes limit時乘盼,使用交換空間升熊。 
vm.swappiness = 1  內(nèi)核版本3.5及以上、Red Hat內(nèi)核版本2.6.32-303及以上绸栅,進行最少量的交換级野,而不禁用交換。 
vm.swappiness = 10當系統(tǒng)存在足夠內(nèi)存時粹胯,推薦設(shè)置為該值以提高性能蓖柔。 
vm.swappiness = 60默認值
vm.swappiness = 100    內(nèi)核將積極的使用交換空間
# sysctl -a | grep vm.swappiness 查看swappiness
vm.swappiness = 30
# echo 10 > /proc/sys/vm/swappiness 臨時修改
# sysctl -a | grep vm.swappiness
# vm.swappiness = 10
# sysctl -w vm.swappiness=10 臨時修改
vm.swappiness = 10
# cat /proc/sys/vm/swappiness
10
在/etc/sysctl.conf中編輯,增加如下參數(shù)(如果存在的話)
vm.swappiness = 10 永久修改 需要重啟
  • 特別注意:
    在不影響業(yè)務(wù)和系統(tǒng),物理內(nèi)存足夠情況下,優(yōu)先建議使用最后一種修改swappiness這樣可以保證在優(yōu)先使用物理內(nèi)存而在物理內(nèi)存不足的情況下使用swap防止內(nèi)存溢出风纠。根據(jù)查詢資料建議設(shè)置值10
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末况鸣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子竹观,更是在濱河造成了極大的恐慌镐捧,老刑警劉巖潜索,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異懂酱,居然都是意外死亡竹习,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門列牺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來整陌,“玉大人,你說我怎么就攤上這事瞎领∶诒瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵默刚,是天一觀的道長甥郑。 經(jīng)常有香客問我,道長荤西,這世上最難降的妖魔是什么澜搅? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮邪锌,結(jié)果婚禮上勉躺,老公的妹妹穿的比我還像新娘。我一直安慰自己觅丰,他們只是感情好饵溅,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妇萄,像睡著了一般蜕企。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冠句,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天轻掩,我揣著相機與錄音,去河邊找鬼懦底。 笑死唇牧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的聚唐。 我是一名探鬼主播丐重,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杆查!你這毒婦竟也來了扮惦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤亲桦,失蹤者是張志新(化名)和其女友劉穎径缅,沒想到半個月后掺栅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡纳猪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桃笙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氏堤。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖搏明,靈堂內(nèi)的尸體忽然破棺而出鼠锈,到底是詐尸還是另有隱情,我是刑警寧澤星著,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布购笆,位于F島的核電站,受9級特大地震影響虚循,放射性物質(zhì)發(fā)生泄漏同欠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一横缔、第九天 我趴在偏房一處隱蔽的房頂上張望铺遂。 院中可真熱鬧,春花似錦茎刚、人聲如沸襟锐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粮坞。三九已至,卻和暖如春初狰,著一層夾襖步出監(jiān)牢的瞬間莫杈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工跷究, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姓迅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓俊马,卻偏偏與公主長得像丁存,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柴我,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

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

  • 觀其大綱 第1部分Linux的基礎(chǔ)知識第1章Linux概述第2章Linux系統(tǒng)的安裝KickStart開始自動安裝...
    周少言閱讀 1,484評論 1 10
  • Linux系統(tǒng)一般有4個主要部分:內(nèi)核解寝、shell、文件系統(tǒng)和應(yīng)用程序艘儒。 內(nèi)核聋伦、shell和文件系統(tǒng)一起形成了基本...
    請愛護小動物閱讀 2,575評論 0 22
  • SWAP/swappiness/kswapd原理夫偶,swap分區(qū)優(yōu)先級的妙用 概述 本文討論的swap基于Linux...
    xywzhen閱讀 5,206評論 1 5
  • 1我認識他的第一部電影:三傻大鬧寶萊塢 當時看的時候兵拢,感覺整個人的三觀被重新刷了一遍。 1.你們都陷入比賽中逾礁,就算...
    叫我婉桃閱讀 423評論 0 2
  • 最近在讀好朋友的文章嘹履,于是興起自己也開始碼字腻扇,記錄一下當下的心情 或許我看事情的角度不夠成熟,或許我對世界的理解不...
    Henry_Yuan閱讀 213評論 0 0