Linux 修改swap虛擬內存大小


      swap是內存的交換區;換句話說,如果內存不夠用了,那么系統會在硬盤上存儲一些內存中不常用的數據,之后將這部分數據在存儲中析構掉;這樣內存就又有剩余空間可以運行東東啦,這個過程也就是所謂的交換,存儲數據的硬盤部分就是swap分區。 裝系統的時候可能會將swap大小設置的不合適 但是swap的大小不正確,很影響服務器的性能。下面說說怎么修改swap分區的大小。

1、查看系統Swap空間使用
[root@localhost mapper]# free -m
             total       used       free     shared    buffers     cached
Mem:          1006        753        252          3         32        526
-/+ buffers/cache:        195        810
Swap:         100          0       100

 

2、創建swap文件

[root@localhost mapper]# cd /usr
[root@localhost usr]# mkdir swap
[root@localhost usr]# cd swap
[root@localhost swap]# ll
總用量 0
[root@localhost swap]# dd if=/dev/zero of=/usr/swap/swapfile1 bs=1024 count=1000000
記錄了1000000+0 的讀入
記錄了1000000+0 的寫出
1024000000字節(1.0 GB)已復制,5.40277 秒,190 MB/秒

(注意:if 表示 infile,of 表示outfile,bs=1024 表示寫入的每個塊的大小為1024B=1KB(1024B字節=1024*8bit位)

 

3、查看創建文件的大小

[root@localhost swap]# du -sh /usr/swap/swapfile1
977M    /usr/swap/swapfile1

 

4、將目標文件設置為swap分區文件

[root@localhost swap]# mkswap /usr/swap/swapfile1
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=7eec8e34-e5d9-48f7-aa71-028268a48e46

 

5、激活swap,立即啟用交換分區文件

[root@localhost swap]# swapon /usr/swap/swapfile1

 

6、若要想使開機時自啟用,則需修改文件/etc/fstab中的swap行
[root@localhost swap]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon May 11 19:35:55 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_localhost-lv_root /                       ext4    defaults        1 1
UUID=cef520a0-df77-4ce1-8856-514d154c816d /boot                   ext4    defaults        1 2
#/dev/mapper/vg_localhost-lv_swap swap                    swap    defaults        0 0
/usr/swap/swapfile1      swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
重啟系統生效。

 

fstab文件詳解

fstab中存放了與分區有關的重要信息,其中每一行為一個分區記錄,每一行又可分為六個部份,下面以 /dev/hda7 / ext2 defaults 1 1 為例逐個說明: 
1) 第一項是您想要mount的儲存裝置的實體位置,如hdb或/dev/hda6。
2) 第二項就是您想要將其加入至哪個目錄位置,如/home或/,這其實就是在安裝時提示的掛入點。
3) 第三項就是所謂的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如ext2,可以參見/prco/filesystems說明。
4) 第四項就是您mount時,所要設定的狀態,如ro(只讀)或defaults(包括了其它參數如rw、suid、exec、auto、nouser、async),可以參見「mount nfs」。
5) 第五項是提供DUMP功能,在系統DUMP時是否需要BACKUP的標志位,其內定值是0。該選項被dump命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不需要轉儲就設置該字段為0。
6) 第六項是設定此filesystem是否要在開機時做check的動作,除了root的filesystem其必要的check為1之外,其它皆可視需要設定,內定值是0。該字段被fsck命令用來決定在啟動時需要被掃描的文件系統的順序,根文件系統/對應該字段的值應該為1,其他文件系統應該為2。若該文件系統無需在啟動時掃描則設置該字段為0。

第四個選項參數
ro 以只讀模式加載該文件系統
sync 不對該設備的寫操作進行緩沖處理,這可以防止在非正常關機時情況下破壞文件系統,但是卻降低了計算機速度
user 允許普通用戶加載該文件系統
quota 強制在該文件系統上進行磁盤定額限制
noauto 不再使用mount -a命令(例如系統啟動時)加載該文件系統
noexec(不允許可執行文件可執行,但千萬不要把根分區掛為noexec,那就無法使用系統了,連mount 命令都無法使用了,這時只有重新做系統了!
nodev(不允許掛載設備文件)
nosuid,nosgid(不允許有suid和sgid屬性)
nouser(不允許普通用戶掛載)

如果想開機就自動掛載(mount)上,可以在/etc/fstab上添加如下幾行,同樣也可以用mount在/etc/rc.d/rc.local里啟動:
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda6 /mnt/e vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda7 /mnt/f vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda8 /mnt/g vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM