Linux虚拟内存(swap)

442 阅读1分钟

查看虚拟内存

free -m

创建虚拟内存配置文件

centos先切换为root用户

mkdir swap
cd swap
// 2GB
dd if=/dev/zero of=swapfile bs=1024 count=2000000
// 4GB
dd if=/dev/zero of=swapfile bs=512 count=8388616

生成的文件转成swap文件

mkswap swapfile

激活swap文件

swapon swapfile

卸载命令

swapoff swapfile
// 删除
rm -rf swapfile

开机自启,编辑/etc/fstab,添加:

注意:/root/swap/swapfile是你的swapfile目录

/root/swap/swapfile swap swap defaults 0 0

查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成10

解释:内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。(网上有的说,对于3.5以后的内核和RedHat 2.6.32之后的内核,设置为0会禁止使用swap,从而引发out of memory,这种情况可以设置为1。) 需要根据服务器运行的程序类型,来设置不同的参数值。例如,对于Oracle一般设置为10;对于MySQL一般设置为1,尽可能不用swap分区。

  • 临时修改
sysctl -w vm.swappiness=10
  • 永久修改
vim /etc/sysctl.conf
# 修改为:vm.swappiness = 10