交换实用程序
mkswap 命令用于初始化交换分区或者交换文件。
语法是:
# mkswap {device|file}
swapon 和 swapoff 实用程序分别启用和禁用用于交换的设备和文件。
要显示当前交换信息,请使用“swapon –s”命令。
输出与查看 /proc/swaps 的内容相同。
# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 2097148 88296 -1
添加交换空间
交换分区或者交换文件在初始化之前必须存在。
使用 fdisk 或者 parted 创建交换分区。
交换文件是使用 dd 命令创建的。
例子:
# dd if=/dev/zero of=/swapfile bs=1024 count=1000000
要初始化交换分区,执行:
# mkswap /dev/xvdd1
要初始化交换文件,执行:
# mkswap /swapfile
使用 swapon 命令启用初始化交换空间。
要在交换文件上启用交换,请输入:
# swapon /swapfile
要在交换分区上启用交换,请输入:
# swapon /dev/xvda3
更新 /etc/fstab 文件以在启动时启用交换分区或者交换文件:
# vi /etc/fstab UUID=... swap swap defaults 0 0 /swapfile swap swap defaults 0 0
什么是交换空间(swap space)
当系统上没有足够的物理内存 (内存) 来存储当前正在处理的数据时,Linux 中会使用交换空间。
当系统需要更多内存时,不活动的内存页面会写入磁盘,从而释放物理内存。
不应将增加交换空间视为内存短缺的解决方案。
交换空间位于磁盘驱动器上,其访问时间比物理内存慢。
如果系统经常交换,我们应该添加更多的物理内存,而不是更多的交换空间。
Linux 中的交换空间或者是文件系统中的一个普通文件,称为交换文件,或者是一个单独的分区,或者是交换分区和交换文件的组合。
专用交换分区要快得多,但更容易更改交换文件的大小。
如果我们知道需要多少交换空间,请使用交换分区。
如果我们不确定,请先尝试交换文件,然后在知道要求后创建交换分区。
交换分区列在分区表中,在 /etc/fstab 中引用,并可在 /proc/swaps 文件中查看。
还有命令行实用程序可以显示有关交换空间的信息。
要查看分区表中的交换分区,请输入:
# fdisk -l | grep swap Disk /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
要查看 /etc/fstab 文件中的交换分区(或者文件),请输入:
# grep swap /etc/fstab /dev/mapper/cl-swap swap swap defaults 0 0
要显示 /proc/swaps 文件的内容,请输入:
# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 2097148 88296 -1
查看交换空间的使用情况
查看 /proc/meminfo 文件,或者使用其他实用程序(例如 free、top 和 vmstat)来查看内存和交换空间使用情况。
例子:
# grep -i swap /proc/meminfo SwapCached: 9472 kB SwapTotal: 2097148 kB SwapFree: 2008852 kB
要使用 free 命令查看交换使用情况,请输入:
# free | grep -i swap Swap: 2097148 88296 2008852