1. linux中swap交換分區的創建和容量調整的教程
我們都知道在安裝Linux系統時在分區時可以分配swap分區,而系統安裝後(在運行中)如何建立或調整swap分區呢?
在裝完Linux系統之後,建立Swap分區有兩種方法。
1.新建磁碟分區作為swap分區;
2.用文件作為swap分區 (操作更簡單,我更常用)。
下面介紹這兩種方法:(都必須用root許可權,操作過程應該小心謹慎。)
一、新建磁碟分區作為swap分區
1.以root身份進入控制台(登錄系統),輸入
復制代碼
代碼如下:
# swapoff -a #停止所有的swap分區
2. 用fdisk命令(例:# fdisk /dev/sdb)對磁碟進行分區,添加swap分區,新建分區,在fdisk中用t命令將新添的分區id改為82(Linux swap類型),最後用w將操作實際寫入硬碟(沒用w之前的操作是無效的)。
3.
復制代碼
代碼如下:
# mkswap /dev/sdb2 #格式化swap分區,這里的sdb2要看您加完後p命令顯示的實際分區設備名
4.
復制代碼
代碼如下:
# swapon /dev/sdb2 #啟動新的swap分區
5. 為了讓系統啟動時能自動啟用這個交換分區,可以編輯/etc/fstab,加入下面一行
復制代碼
代碼如下:
/dev/sdb2 swap swap defaults 0 0
二、調整swap分區大小
有的時候,我們要增加swap的大來,例如,安裝oracle。下面說一下如何來增加交換分區的大小。
復制代碼
代碼如下:
root@ubuntu:/home/zhangying# free -m
total used free shared buffers cached
Mem: 3449 3256 193 0 723 1687
-/+ buffers/cache: 845 2604
Swap: 254 0 254
復制代碼
代碼如下:
root@ubuntu:/home/zhangying# mkdir swap
root@ubuntu:/home/zhangying# cd swap/
root@ubuntu:/home/zhangying/swap# dd if=/dev/zero of=swaptmp bs=9024 count=100000
記錄了100000+0 的讀入
記錄了100000+0 的寫出
902400000位元組(902 MB)已復制,12.5008 秒,72.2 MB/秒
復制代碼
代碼如下:
root@ubuntu:/home/zhangying/swap# mkswap swaptmp
mkswap: swaptmp: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 881244 KiB
no label, UUID=ed24d0cc-3af5-4278-b41a-df1ab7433f83
root@ubuntu:/home/zhangying/swap# swapon swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3359 90 0 637 1930
-/+ buffers/cache: 791 2657
Swap: 1115 0 1115
這種只是臨時的,如果重起電腦的話,交換分區的大小還是還原成原來的,如果不重起想還原成原來的,看下面的方法。
復制代碼
代碼如下:
root@ubuntu:/home/zhangying/swap# swapoff swaptmp
root@ubuntu:/home/zhangying/swap# rm swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3368 81 0 732 1895
-/+ buffers/cache: 739 2710
Swap: 254 6 248
還有一種情況是這種臨時的swap,變成非臨時的。
復制代碼
代碼如下:
nano /etc/fstab
/home/zhangying/swap/swaptmp swap swap defaults 0 0
注釋:這種啟動的時候自動載入,根載入windows下的硬碟是一樣的,如果swaptmp文件丟失,也無法增加swap的大小。
三、用文件作為Swap分區
1.創建要作為swap分區的文件:增加1GB大小的交換分區,則命令寫法如下,其中的count等於想要的塊的數量(bs*count=文件大小)。
復制代碼
代碼如下:
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
2.格式化為交換分區文件:
復制代碼
代碼如下:
# mkswap /root/swapfile #建立swap的文件系統
3.啟用交換分區文件:
復制代碼
代碼如下:
# swapon /root/swapfile #啟用swap文件
4.使系統開機時自啟用,在文件/etc/fstab中添加一行:
復制代碼
代碼如下:
/root/swapfile swap swap defaults 0 0
新建和增加交換分區用到的命令為:mkswap、swapon等,而想關閉掉某個交換分區則用swapon /dev/sdb2這樣的命令即可。
下面的操作命令演示了用文件作為Swap的操作過程(包括前後的一些檢查)。
復制代碼
代碼如下:
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095
復制代碼
代碼如下:
[root@jay-linux ~]# cat /etc/fstab
# 已省略與主題無關的部分輸出
/dev/sda3 swap
swap defaults 0 0
復制代碼
代碼如下:
[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe
復制代碼
代碼如下:
[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119
復制代碼
代碼如下:
[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023
復制代碼
代碼如下:
[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0
復制代碼
代碼如下:
[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095
復制代碼
代碼如下:
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095
復制代碼
代碼如下:
[root@jay-linux ~]# cat /etc/fstab
# 已省略與主題無關的部分輸出
/dev/sda3 swap
swap defaults 0 0
復制代碼
代碼如下:
[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe
復制代碼
代碼如下:
[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119
復制代碼
代碼如下:
[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023
復制代碼
代碼如下:
[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0
復制代碼
代碼如下:
[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095
2. Linux系統怎麼調整swap分區大小
在Linux系統中調整swap分區大小,可以按照以下步驟進行:
一、查看當前swap大小
- 使用free -m命令查看當前的內存和swap使用情況,以確定是否需要調整swap大小。
二、創建新的swap文件(如果需要增加swap大小)
- 確定swap文件大小:根據系統RAM大小,決定swap文件的大小。一般建議是RAM的1到2倍(具體可根據官方建議調整)。
- 創建swap文件:使用dd命令創建一個指定大小的swap文件。例如,要創建一個1GB的swap文件,可以執行dd if=/dev/zero of=/mnt/myswap.swp bs=1024MB count=1(假設swap文件存放在/mnt目錄下)。如果只是想臨時測試,也可以將文件放在/tmp目錄下,如dd if=/dev/zero of=/tmp/swap bs=1MB count=1024(創建一個1024MB即1GB的文件)。
三、設置swap文件
- 使用mkswap命令將新創建的文件設置為swap分區。例如,mkswap /mnt/myswap.swp或mkswap /tmp/swap。
四、啟用新的swap文件
- 使用swapon命令啟用新的swap文件。例如,swapon /mnt/myswap.swp或swapon /tmp/swap。
五、驗證swap大小
- 再次使用free -m命令查看內存和swap的使用情況,確認新的swap分區已經生效並且大小正確。
六、關閉不再使用的swap文件(如果需要減小swap大小)
- 如果之前已經有一個swap分區或文件,並且現在想要減小swap的總大小,可以關閉不再使用的swap文件。使用swapoff命令關閉指定的swap文件。例如,swapoff /mnt/myswap.swp或swapoff /tmp/swap。
注意事項:
- 在調整swap大小之前,請確保已經備份了重要數據。
- 如果只是臨時增加swap大小,可以在不再需要時關閉相應的swap文件以釋放空間。
- 在生產環境中進行此類操作時,請先在測試環境中進行驗證,以確保不會對系統造成負面影響。