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。
当然这么多建议标准,很让人无所适从,不知道该怎么设置。其实根据系统实际情况和内存的负荷综合考虑,但是实际情况又是什么样呢?
个人建议从如下几个考虑:
3. 如何增加或者删除swap分区
1、查看swap空间和使用情况
[root@localhost-zabbix ~]# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 2097144 0 -1 [root@localhost-zabbix ~]# free -m total used free shared buffers cached Mem: 1877 565 1311 0 132 188 -/+ buffers/cache: 244 1632 Swap: 2047 0 2047
2、关闭swap
[root@localhost-zabbix ~]# swapoff /dev/dm-1 [root@localhost-zabbix ~]# swapon -s Filename Type Size Used Priority
3、启用之前关闭分区
[root@localhost-zabbix ~]# swapon /dev/dm-1 [root@localhost-zabbix ~]# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 2097144 0 -1
4、缩小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 -s Filename Type Size Used Priority [root@getlnx14uat ~]# swapon /dev/mapper/VolGroup00-LogVol01 [root@getlnx14uat ~]# swapon -s Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 8388600 0 -1
5、增大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 -h Filesystem 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/swap mkswap: /home/swap: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 1023996 KiB no label, UUID=74c16b0d-7d88-4384-b41e-b12cc93d4bbf [root@localhost-zabbix ~]# cd /home/ [root@localhost-zabbix home]# ls swap [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 KiB no label, UUID=7677912c-b337-4e83-9003-b736dec93d31 [root@localhost-zabbix home]# free -m total used free shared buffers cached Mem: 1877 1611 265 0 135 1192 -/+ buffers/cache: 283 1593 Swap: 2047 0 2047 [root@localhost-zabbix home]# swapon swap [root@localhost-zabbix home]# free -m total used free shared buffers cached Mem: 1877 1612 265 0 135 1192 -/+ buffers/cache: 284 1592 Swap: 3047 0 3047 [root@localhost-zabbix home]# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 2097144 0 -1 /home/swap file 1023992 0 -2
我们可以看到上面是有分区文件的方式增大了swap空间。但是这里还有个问题就是重启系统以后swap还是会变回去,这里需要修改/etc/fstab
增加:/home/swap swap swap default 0 0
删除刚刚增加swap
swapoff /home/swap rm -rf /home/swap vi /etc/fstab /home/swap swap swap default 0 0
是有新的分区新建swap:
使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
mkswap /dev/sdb2 swapon /dev/sdb2 vi /etc/fstab /dev/sdb2 swap swap defaults 0 0
6、修改swappiness
swappiness参数值说明 vm.swappiness = 0 仅在内存不足的情况下--当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。 vm.swappiness = 1 内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。 vm.swappiness = 10当系统存在足够内存时,推荐设置为该值以提高性能。 vm.swappiness = 60默认值 vm.swappiness = 100 内核将积极的使用交换空间 # sysctl -a | grep vm.swappiness 查看swappiness vm.swappiness = 30 # echo 10 > /proc/sys/vm/swappiness 临时修改 # sysctl -a | grep vm.swappiness # vm.swappiness = 10 # sysctl -w vm.swappiness=10 临时修改 vm.swappiness = 10 # cat /proc/sys/vm/swappiness 10 在/etc/sysctl.conf中编辑,增加如下参数(如果存在的话) vm.swappiness = 10 永久修改 需要重启
特别注意:
在不影响业务和系统,物理内存足够情况下,优先建议使用最后一种修改swappiness这样可以保证在优先使用物理内存而在物理内存不足的情况下使用swap防止内存溢出。根据查询资料建议设置值10
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。
本文向大家介绍详细解读linux下swap分区的作用,包括了详细解读linux下swap分区的作用的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是linux下swap分区的相关内容,具体介绍如下。 swap分区介绍 嵌入式Linux中文站消息,Linux系统的Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供
本文向大家介绍php投票系统之增加与删除投票(管理员篇),包括了php投票系统之增加与删除投票(管理员篇)的使用技巧和注意事项,需要的朋友参考一下 关于投票系统怎么样怎么样的引言就不多说,这不是毕业设计,主要说一下使用php实现投票系统,与其他普通系统一样,分为两部分,一个是管理员部分,一个是普通用户部分。 关于投票系统的管理部分,非常之简单,提供两部分的功能,增加投票与删除投票 关键在于设计好数
一、简介 PHPSSO可以设置禁止注册的用户名或EMAIL等。还可以整合ucenter,实现v9与uc的用户整合,实现与uc应用的同步注册、登录。还可以设置与php2008 sp4密码兼容等。 二、功能演示 1,注册配置 设置禁止注册用户名,E-MAIL等。如下图所示: 2,UCenter配置 配置好基本信息就能实现v9与uc的用户整合,实现与uc应用的同步注册、登录。如下图所示: 1,PHP20
7.4.3.系统分区 系统分区用于存放整个Android操作系统。预装的应用程序、系统库、Android框架、Linux命令行工具等等,都存放在这里。 系统分区是以只读模式挂载的,应用开发者针对它的发挥空间不大,在此我们不多做关注。 在仿真器中,系统分区对应的映像文件是system.img,它与平台相关,位于android-sdk/platforms/android-8/images目录。
cmf_set_option($key, $data, $replace = false) 功能 设置系统配置,通用 参数 $key: string 配置键值,都小写 $data: array 配置值,数组 $replace: array 是否完全替换 返回 bool 是否成功
X2.2.0新增 sp_set_option($key,$data) 功能: 设置系统配置,通用 参数: $key: 配置的键名,英文下划线小写,最好加上自己的应用或插件名作为前级 $data:配置的值,数组 返回: 类型boolean,true设置成功 使用: $result = sp_set_option('portal_custom_settings',array('test'=>1));