服务器
1. 什么是swap分区
swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap分区中,等到那些程序要运行时,再从swap分区中恢复保存的数据到内存中。swap分区是从磁盘空间划分而来,有的是单独使用一个分区,有的是把一个大文件当做swap。
2. 官方关于swap设置
redhat6.4 官方推荐(我们使用centos 6.4)
推荐的系统交换空间
系统中的ram数量 建议交换空间 如果允许休眠,建议使用交换空间
⩽2gb ram的2倍 ram数量的3倍
> 2gb – 8gb 等于ram的数量 ram的2倍
> 8gb – 64gb 至少4 gb ram的1.5倍
> 64gb 至少4 gb 不建议休眠
因为有些系统会允许休眠状态,如果不设置swap会无法启动,就像windows系统使用休眠设置虚拟内存一样。
mysql 5.6 和5.7的建议
mysql5.6
是说在物理内存足够的情况下,可以删除swap,因为系统在有些情况下会及时内存够用使用swap,若使用会因为i/0变高导致mysql故障。mysql建议删除。
oracle建议
另外在其它博客中看到下面一个推荐设置,当然我不清楚其怎么得到这个标准的。是否合理也无从考证。可以作为一个参考。
4g以内的物理内存,swap 设置为内存的2倍。
4-8g的物理内存,swap 等于内存大小。
8-64g 的物理内存,swap 设置为8g。
64-256g物理内存,swap 设置为16g。
当然这么多建议标准,很让人无所适从,不知道该怎么设置。其实根据系统实际情况和内存的负荷综合考虑,但是实际情况又是什么样呢?
个人建议从如下几个考虑:
物理内存空间是否在峰值也可以满足要求,不满足建议设置swap防止内存溢出导致主机宕机,当然设置不宜过大,占用磁盘空间。
磁盘i/o是否足够,使用磁盘i/o值过低或者其他业务要求高,不建议设置swap。由于使用swap需要频繁写入磁盘,使用固态磁盘不建议设置。
服务器安装的具体的应用,比如mysql等不推荐设置,可以不设置或者修改参数swappiness来控制的,默认值为 60意思是说在内存使用40%%u7684情况下就使用swap空间,可以将值设置为10 或者设置0,优先使用物理内存。
3. 如何增加或者删除swap分区
1、查看swap空间和使用情况
[root@localhost-zabbix ~]# swapon -sfilename type size used priority/dev/dm-1 partition 2097144 0 -1[root@localhost-zabbix ~]# free -m total used free shared buffers cachedmem: 1877 565 1311 0 132 188-/ buffers/cache: 244 1632swap: 2047 0 20472、关闭swap
[root@localhost-zabbix ~]# swapoff /dev/dm-1[root@localhost-zabbix ~]# swapon -sfilename type size used priority3、启用之前关闭分区
[root@localhost-zabbix ~]# swapon /dev/dm-1[root@localhost-zabbix ~]# swapon -sfilename type size used priority/dev/dm-1 partition 2097144 0 -14、缩小swap分区
如果是增大swap分区大小,那么就需要扩展正在使用的swap分区的逻辑卷,此处使用lvreduce命令收缩逻辑卷
[root@getlnx14uat ~]# lvreduce -l 8g /dev/mapper/volgroup00-logvol01 warning: reducing active logical volume to 8.00 gb this may destroy your data (filesystem etc.)do you really want to reduce logvol01? [y/n]: y reducing logical volume logvol01 to 8.00 gb logical volume logvol01 successfully resized[root@getlnx14uat ~]# mkswap /dev/mapper/volgroup00-logvol01 #格式化setting up swapspace version 1, size = 8589930 kb[root@getlnx14uat ~]# swapon -sfilename type size used priority[root@getlnx14uat ~]# swapon /dev/mapper/volgroup00-logvol01[root@getlnx14uat ~]# swapon -sfilename type size used priority/dev/mapper/volgroup00-logvol01 partition 8388600 0 -15、增大swap空间
如果磁盘还有剩余未分配空间可以新分区swap或者增大之前的swap
如果没有磁盘未分配,可以新建分区文件,来增大swap
[root@localhost-zabbix ~]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000记录了1024000 0 的读入记录了1024000 0 的写出1048576000字节(1.0 gb)已复制,2.69212 秒,389 mb/秒[root@localhost-zabbix ~]# df -hfilesystem size used avail use% mounted on/dev/mapper/vg_localhostzabbix-lv_root 18g 4.7g 12g 29% /tmpfs 939m 0 939m 0% /dev/shm/dev/sda1 485m 33m 427m 8% /boot[root@localhost-zabbix ~]# mkswap /home/swapmkswap: /home/swap: warning: don\\\'t erase bootbits sectors on whole disk. use -f to force.setting up swapspace version 1, size = 1023996 kibno label, uuid=74c16b0d-7d88-4384-b41e-b12cc93d4bbf[root@localhost-zabbix ~]# cd /home/[root@localhost-zabbix home]# lsswap[root@localhost-zabbix home]# mkswap swap mkswap: swap: warning: don\\\'t erase bootbits sectors on whole disk. use -f to force.setting up swapspace version 1, size = 1023996 kibno label, uuid=7677912c-b337-4e83-9003-b736dec93d31[root@localhost-zabbix home]# free -m total used free shared buffers cachedmem: 1877 1611 265 0 135 1192-/ buffers/cache: 283 1593swap: 2047 0 2047[root@localhost-zabbix home]# swapon swap [root@localhost-zabbix home]# free -m total used free shared buffers cachedmem: 1877 1612 265 0 135 1192-/ buffers/cache: 284 1592swap: 3047 0 3047[root@localhost-zabbix home]# swapon -sfilename type size used priority/dev/dm-1 partition 2097144 0 -1/home/swap
ecs云服务器如何禁用公网ip收不到验证码-备案平台域名转移流程是怎样的 应该如何转出浅谈老客户维系营销应该如何开展2020年策划人必备的58个策划工具纵观2021 RSAC云安全,创新沙盒的这家公司为什么能得到亿元融资?弹性云服务器和经典云服务器有什么区别东莞域名注册相关知识介绍