物理内存实在不够了怎么办?
创建swap交换分区
-
先创建一个空的2G文件,我们选择在根目录创建一个名为swapfile的空文件:
[root@VM_0_11_centos sys]# dd if=/dev/zero of=/swapfile bs=1M count=2048 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 17.833 s, 120 MB/s
dd
命令作用是使用指定大小的块拷贝一个文件,从/dev/zero
拷贝到/swapfile
,也就是生成一个空的块文件,每个块1M,2048个块,也就是生成2G大小的swapfile
-
设置这个文件为swap交换分区文件
[root@VM_0_11_centos /]# mkswap /swapfile Setting up swapspace version 1, size = 2097148 KiB no label, UUID=dba5f913-07f2-4b94-911b-4d954816170b [root@VM_0_11_centos /]# mkswap -f /swapfile mkswap: /swapfile: warning: wiping old swap signature. Setting up swapspace version 1, size = 2097148 KiB no label, UUID=aeb5d475-222b-4c52-b8c6-66fcdc5ddd35
-
swapon激活开启用作系统交换分区的设备或文件
swapon /swapfile
设置永久有效,重启后也生效,在
/etc/fstab
文件增加:/swapfile swap swap defaults 0 0
[root@VM_0_11_centos /]# cat /etc/fstab UUID=4b499d76-769a-40a0-93dc-4a31a59add28 / ext4 noatime,acl,user_xattr 1 1 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 /swapfile swap swap defaults 0 0
重启后可以看看,reboot
取消swap分区
swapoff取消swap然后删除swapfile就行了
swapoff /swapfile
rm -rf /swapfile
swappiness , 系统使用swap交换内存的倾向
0-100,值越高越倾向使用swap,设置过大的话物理内存还可用很多的情况下都进到swap里了,过于保守,而swap的性能要比物理内存低多了。kafka调优里有个技巧就是设置swappiness为比较小的值。
sysctl vm.swappiness=30
echo "vm.swappiness = 30" >> /etc/sysctl.conf
设置永久生效
[root@VM_0_11_centos ~]# cat /proc/sys/vm/swappiness
30
参考:
https://blog.csdn.net/sqlquan/article/details/106709719
https://www.321dz.com/2045.html https://www.cnblogs.com/nullnullnull/p/11114517.html
https://blog.csdn.net/tenfyguo/article/details/50185915 swap调优