swap扩容
如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。
例如,Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。
因此Swap空间的分配是很重要的,通常Swap空间的大小应是物理内存的2-2.5倍.
#查看当前的swap大小
[root@teddylu1987 teddylu]# free -m
total used free shared buff/cache available
Mem: 1999 589 84 129 1325 1096
Swap: 255 182 73
#使用dd命令创建/root/swap-add这么一个分区文件。文件的大小是4096000个block,一般情况下1个block为1K,所以这里空间是4G
dd if=/dev/zero of=/data/swap-add bs=1024 count=4096000
#把这个分区变成swap分区
[root@teddylu1987 teddylu]# mkswap /data/swap-add
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=8e8f5f82-9252-4baa-9c98-2b3cb8274964
#再接着使用这个swap分区。使其成为有效状态
[root@teddylu1987 teddylu]# swapon /data/swap-add
swapon: /data/swap-add: insecure permissions 0644, 0600 suggested.
[root@teddylu1987 teddylu]# chmod 600 /data/swap-add
#再次查看swap大小
[root@teddylu1987 teddylu]# free -m
total used free shared buff/cache available
Mem: 1999 588 77 76 1333 1150
Swap: 4255 236 4019
#使其重启也能生效!!!
#vim /etc/fstab
/data/swap-add swap swap defaults 0 0
使用swap的优先级
1.查看当前swappiness值
cat /proc/sys/vm/swappiness
2.修改swappiness值为100(临时修改,重启后即还原为默认值)
sysctl vm.swappiness=100
3.永久修改swappiness默认值(重启生效)
vim /etc/sysctl.conf
vm.swappiness=100
PS:如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面