CentOS 作為linux世界里最穩定的服務器版本,rhas5一直有很大的應用面,之前一直關注的是freebsd,因為應用的需要,特別在配合mysql和oracle上red hat有著太多優勢。
用centos來代替red hat as的使用,因為centos5是利用rhas5的源碼,去掉redhat的商標、圖標之后編譯發行的,是最一個源碼編譯版本,我用的是centos 5.2
在安裝centos 5.2的時候,忘設置swap交換分區,在內存小的情況下,增大swap的作用比較有效的。
配置swap之前,通過 free 和 df 查看 swap 和 磁盤空間情況,目的是通過配置swap后比較變化。
free -m/p>
p>[root@ithomer ~]# free -m
total used free shared buffers cached
Mem: 1008 955 53 0 17 168
-/+ buffers/cache: 769 239
Swap: 0 0 0/p>
p> /p>
p>df -h/p>
p>[root@ithomer ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 15G 4.2G 79% /
tmpfs 505M 0 505M 0% /dev/shm
/dev/xvdb 9.9G 5.1G 4.4G 54% /home/data
第一步 創建文件塊
[root@ithomer ~]# cd /var (進入一個文件夾)/p>
p>[root@ithomer var]# dd if=/dev/zero of=swapfile bs=1024 count=1024000 (創建1GB的swap ,一般是內存的兩倍)/p>
p>1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 23.3843 s, 44.8 MB/s/p>
p>[root@ithomer var]# /sbin/mkswap swapfile (創建swap文件,實際上dd已創建,此處不必再創建)/p>
p>mkswap: swapfile: warning: don’t erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=e878f535-ea6f-4516-8a34-f1458951aa36/p>
p>[root@ithomer var]# ll swapfile
-rw-r–r– 1 root root 1048576000 11月 27 00:55 swapfile/p>
p>[root@ithomer var]# /sbin/swapon swapfile (激活swap文件)/p>
p>[root@ithomer var]# /sbin/swapon -s (檢查swap是否正確)/p>
p>Filename Type Size Used Priority
/var/swapfile file 1023992 0 -1/p>
p> /p>
p>[root@ithomer var]# vi /etc/fstab (加到fstab文件中讓系統引導時自動啟動)
在末尾增加以下內容:
/var/swapfile swap swap defaults 0 0/p>
p>[root@ithomer var]# reboot
重啟之后,top命令查看,有swap分區的大小了
free -m/p>
p>[root@ithomer ~]# free -m
total used free shared buffers cached
Mem: 1008 528 480 0 25 128
-/+ buffers/cache: 375 633
Swap: 999 0 999/p>
p> /p>
p>df -h/p>
p>[root@ithomer ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 16G 3.2G 84% /
tmpfs 505M 0 505M 0% /dev/shm
/dev/xvdb 9.9G 5.1G 4.4G 54% /home/data
根據上面 free 和 df 與配置 swap 之前比較,發現swap由0增加到了999(大約為1GB),而系統主盤(/dev/xvda1)由 4.2G 減小到了 3.2G 大約為1GB,即swap的空間來源于系統主盤(/dev/xvda1)
問題與解決
1、格式化及啟動swap文件
接下來執行mkswap命令,將myswap文件格式化成s文件系統,系統才能使用,切換到/tmp目錄,并執行以下命令:
# mkswap swapfree (將文件格式化為swap文件格式)/p>
p>setting up swapspace version 1 , size = 262144 KB/p>
p># swapon /tmp/swapfree (#啟動swap分區)
要停止使用新創建的swap文件,只要執行 swapoff /tmp/swapfree命令即可,如果swap交換文件不再使用,可以刪除此文件。
2、檢查swap
#swapon -s
3、 開機時自動啟動新添加的swap分區
如果每次開機后都要執行swapon命令啟動swap分區或者文件,這太麻煩了.這時可以利用文字編輯器在/etc/fstab文件加一行,好讓開機時自動啟動swap分區及文件:
/dec/hdb5 swap swap defaults 0 0 (開機時啟動此swap分區)/p>
p>/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的速度是解決不了問題的。