前言
在linux系統中,swap交換分區的作用類似于windows系統中“虛擬內存”,當有程序被調入內存后,但是該程序又不是常被CPU所取用時,那么這些不常被使用的程序將會被放到硬盤swap交換分區當中。
目錄
一、swap交換分區描述
二、swap分區大小設置
三、swap交換分區的優劣
四、相關命令
五、示例
六、總結
七、思維導圖
一、swap交換分區描述
1、在Linux系統中:
- swap交換分區的作用類似于Windows系統中“虛擬內存”;
- 當有程序被調入內存后,但是該程序又不是常被CPU所取用時,那么這些不常被使用的程序將會被放到硬盤的swap交換分區當中;
- 將速度較快的內存空間釋放給真正需要的程序使用;
- 避免因為物理內存不足而造成的系統效能低的問題;
- 如果系統沒有swap交換分區,或者現有交換分區的容量不夠用時,可擴展swap交換分區。
2、擴展swap交換分區的方式:
- 以磁盤分區的方式擴展swap交換分區;
- 以鏡像文件的方式擴展swap交換分區。
二、swap分區大小設置
系統的swap分區大小設置為多少才算是最優呢?
關于此類問題,具體還應該根據系統實際情況和內存的負荷綜合考慮~
- 物理內存 ≤ 4GB:swap設置為內存的2倍;
- 4BG ≤ 物理內存 ≤ 8GB:swap等于內存大小;
- 8GB ≤ 物理內存 ≤ 64GB:swap設置為8GB;
三、swap交換分區的優劣
在Linux中,相比文件系統中的一個常規文件或獨立分區作為swap交換空間,交換分區要更快一些;但是和RAM相比,swap交換分區的性能就顯得弱一些。
1、優點:
- 在內存占滿的時候,swap交換分區會作為溢出空間幫助內存工作;
- 可以將不常用的項目從RAM移到swap交換分區當中,以提高RAM的工作效率;
- 用戶可以根據自己的需求停止或激活swap分區。
2、缺點:
- 需要占用硬盤空間作為swap交換分區;
- 增加硬盤磨損;
- 不一定能提高性能。
四、相關命令
1、mkswap 分區設備名
- 將指定的分區格式化為swap交換文件系統。
2、swapon 交換分區設備名|-a
- 啟動指定的交換分區或所有交換分區。
3、swapoff 交換分區設備名|-a
- 禁用指定的交換分區或所有交換分區。
4、swapon -s
- 查看交換分區的使用情況。
5、free -m
- 以兆字節為單位顯示物理內存、交換分區的使用情況。
五、示例
- 要求:在磁盤/dev/sdb上用一個新建的分區擴展swap交換分區。
# 1、創建容量為256MB的主分區。
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (11536384-41943039, default 11536384): 11536384
Last sector, +sectors or +size{K,M,G} (11536384-41943039, default 41943039): +256M
Partition 3 of type Linux and of size 256 MiB is set
# 2、使用“t”指令轉換分區類型,可以使用“L”指令顯示所有分區類型的十六進制代碼表。
Command (m for help): t
Partition number (1-3, default 3):3
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
# 3、保存并退出。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks
# 4、通知系統分區表的變化
[root@localhost ~]# partprobe /dev/sdb
# 5、格式化交換分區
[root@localhost ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 262140 KiB
no label, UUID=45c9d92d-e0b0-418d-a60e-9af75a8d6ddd
# 6、顯示擴展前已啟用的交換分區的大小
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1819 179 1404 9 235 1445
Swap: 2047 0 2047
# 7、手工臨時啟用新添加的交換分區
[root@localhost ~]# swapon /dev/sdb3
# 8、查看交換分區的使用情況
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
/dev/sdb3 partition 262140 0 -3
# 9、顯示擴展后已啟用的交換分區的大小
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1819 179 1404 9 235 1445
Swap: 2303 0 2303
# 10、如果要添加永久掛載,可以使用blkid查詢新交換分區的UUID,寫入/etc/fstab文件即可
[root@dyzx ~]# blkid /dev/sdb1 //查看新添加交換分區的UUID
[root@dyzx ~]# vim /etc/fstab
//省略若干行,//在文件末尾添加以下一行:
UUID=944c419b-a15b-40c7-9e97-8b750cc008db swap swap defaults 0 0
六、總結
- swap交換分區的作用類似于Windows系統中“虛擬內存”
- 擴展交換分區的兩種方式:磁盤分區、鏡像文件
- swap交換分區的相關命令:
七、思維導圖