設置centos上的swap交換分區的方法
做爲linux世界裏最穩定的服務器版本,rhas5一直有很大的應用面,以前一直關注的是freebsd,由於應用的須要,特別在配合mysql和oracle上red hat有着太多優點。
用centos來代替red hat as的使用,由於centos5是利用rhas5的源碼,去掉redhat的商標、圖標以後編譯發行的,是最一個源碼編譯版本,我用的是centos 5.2
在安裝centos 5.2的時候,忘設置swap交換分區,在內存小的狀況下,增大swap的做用比較有效的。
第一步 建立文件塊
#cd /var (進入一個文件夾)
#dd if=/dev/zero of=swapfile bs=1024 count=524288 (建立512M的swap ,通常是內存的兩倍)
#/sbin/mkswap swapfile (建立swap文件)
#/sbin/swapon swapfile (激活swap文件)
#/sbin/swapon -s (檢查swap是否正確)
結果:
Filename Type Size Used Priority
/var/swapfile file 524016 0 -1
#vi /etc/fstab (加到fstab文件中讓系統引導時自動啓動)
在末尾增長如下內容:
/var/swapfile swap swap defaults 0 0
#reboot
重啓以後,top命令查看,有swap分區的大小了
swap的問題已經解決(源自網絡)
解決辦法:
二、格式華及啓動swap文件
接下來執行mkswap命令,將myswap文件格式化成s文件系統,系統才能使用,切換到/tmp目錄,並執行如下命令:
# mkswap swapfree (#將文件格式化爲swap文件格式)
setting up swapspace version 1 , size = 262144 KB
# swapon /tmp/swapfree (#啓動swap分區)
要中止使用新建立的swap文件,只要執行 swapoff /tmp/swapfree命令便可,若是swap交換文件再也不使用,能夠刪除此文件。
三、檢查swap
#swapon -s
四、 開機時自動啓動新添加的swap分區
若是每次開機後都要執行swapon命令啓動swap分區或者文件,這太麻煩了.這時能夠利用文字編輯器在/etc/fstab文件加一行,好讓開機時自動啓動swap分區及文件:
/dec/hdb5 swap swap defaults 0 0 (開機時啓動此swap分區)
/tmp/swapfree swap swap defaults 0 0 (開機時啓動此swap文件) .
swap空間大小:
一般狀況下,Swap空間應大於或等於物理內存的大小,最小不該小於64M,一般Swap空間的大小應是物理內存的2-2.5倍。但根據不一樣的應用,應有不一樣的配置:若是是小的桌面系統,則只須要較小的Swap空間,而大的服務器系統則視狀況不一樣須要不一樣大小的Swap空間。特別是數據庫服務器和Web服務器,隨着訪問量的增長,對Swap空間的要求也會增長,具體配置參見各服務器產品的說明。
swap數量:
Swap分區的數量對性能也有很大的影響。由於Swap交換的操做是磁盤IO的操做,若是有多個Swap交換區,Swap空間的分配會以輪流的方式操做於全部的Swap,這樣會大大均衡IO的負載,加快Swap交換的速度。若是隻有一個交換區,全部的交換操做會使交換區變得很忙,使系統大多數時間處於等待狀態,效率很低。用性能監視工具就會發現,此時的CPU並不很忙,而系統卻慢。這說明,瓶頸在IO上,依靠提升CPU的速度是解決不了問題的。 mysql
注: linux
查看swap 空間大小(總計):
# free -m 默認單位爲k, -m 單位爲M
total used free shared buffers cached
Mem: 377 180 197 0 19 110
-/+ buffers/cache: 50 327
Swap: 572 0 572
Mem 行顯示了從系統角度看來內存使用的狀況, total是系統可用的內存大小, 數量上等於系統物理內存減去內核保留的內存.
buffers和cached是系統用作緩衝的內存. buffers與某個塊設備關聯, 包含了文件系統元數據, 而且跟蹤了塊的變化. cache只包含了文件自己.
-/+ buffers/cache 行則從用戶角度顯示內存信息, 可用內存從數量上等於mem行used列值減去buffers和cached內存的大小.
由於buffers和cached是操做系統爲加快系統運行而設置的, 當用戶須要時, 能夠只接爲用戶使用.
top 顯示系統運行時的各進程動態、實時的狀態(cpu、內存)
top 中有3個列 VIRT RES SHR, 標示了進程使用的內存狀況.
VIRT 標識這個進程 可使用的內存總大小, 包括這個進程真實使用的內存, 映射過的文件, 和別的進程共享的內存等.
RES 標識這個這個進程真實佔用內存的大小.
SHR 標識能夠和別的進程共享的內存和庫大小.
vmstat 顯示內存的使用狀況
這些命令都是從/proc/meminfo中讀取內存 信息.
關於/proc/meminfo中各行的含意, 在內核源代碼的Documentation/filesystems/proc.txt文 件中有敘述
系統的真實內存大小能夠用 dmesg | grep [mM][eE][mM]看到
/proc/pid/status顯示一個進程的詳細 狀態 sql