公司一台centos服务器在安装之初,配备了1T的物理内存,以为虚拟内存要求不高,采用系统默认分配的虚拟内存,导致后期使用中,部分需要使用虚拟内存的软件在物理内存空余还600多G的情况下,提示内存不足。所以需要调整虚拟内存,解决软件报错问题。
解决步骤分为:
1.关闭虚拟内存
2.创建虚拟内存文件
3.重新开启虚拟内存
1.关闭虚拟内存
[root@localhost ~]# swapoff -a
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.0T 258G 274G 27M 473G 746G
Swap: 0B 0B 0B虚拟内存关闭后,显示为0
2.创建虚拟内存文件
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.1G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 222.1G 0 part
├─centos-root 253:0 0 218.1G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm
sdb 8:16 0 1.8T 0 disk
└─sdb1 8:17 0 1.8T 0 part /local找一个空间够大,速度够快的分区,创建虚拟内存用
[root@localhost ~]# mkdir /local/swap -p
[root@localhost ~]# dd if=/dev/zero of=/local/swap/swapfile bs=512M count=80我这里是创建一个40G的虚拟内存文件,bs是块大小,count是次数,视服务器性能自行灵活调整。
[root@localhost ~]# mkswap /local/swap/swapfile
3.重新开启虚拟内存
[root@localhost ~]# swapon /local/swap/swapfile
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.0T 258G 274G 27M 473G 746G
Swap: 39G 0B 39G
其他关联操作
1.调整fstab文件
2.调整虚拟内存阈值
1.调整fstab
[root@localhost ~]# vim /etc/fstab注释原虚拟内存配置,并添加一行
/local/swap/swapfile swap swap defaults 0 0
2.调整虚拟内存阈值
[root@localhost ~]# cat /proc/sys/vm/swappiness
60
[root@localhost ~]# echo "vm.swappiness = 80" >> /etc/sysctl.conf # 永久修改虚拟内存阈值
[root@localhost ~]# sysctl vm.swappiness = 80 # 临时修改虚拟内存阈值
[root@localhost ~]# sysctl -p
vm.swappiness = 80
[root@localhost ~]# cat /proc/sys/vm/swappiness
80swappiness=0意味着“在任何情况下都不要发生交换”。
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面
默认为物理内存使用超过100%-60%=40%后再启用虚拟内存,调整后为100%-80%=20%