swap的使用场景
swap主要有两个用处
1、当系统需要比物理内存更多的内存空间的时候,内核会把内存里边用得比较少的内存页面swap out到交换分区,以空出物理内存给当前应用来快速运行。
2、某些应用启动的时候初始化但是随后的应用运行期间不再使用的内存页面,系统会把这部分页面也swap out到交换空间,以留出物理内存页面给其他应用或者磁盘缓存。
linux的这种内存管理策略主要用来节约物理内存,提升当前应用的执行速度。但是swap不能当做扩充内存的一个手段,因为swap读写属于磁盘io,要比物理内存的io慢得多。
如果系统频繁的swap out内存页面到交换分区,随后又swap in交换分区到内存页面,这说明系统在寻找空闲内存来是多个应用同时运行,也就是说当前系统任务比较繁忙,但是可用内存又不足了,这时候唯一的办法只能通过提高物理内存来解决。
因此衡量一个系统内存用量是否到了瓶颈,就可以通过观察swap用量和si so的频率来评估。
那天在虚拟机里面安装oracle 11g r2,发现默认的swap交换空间不满足最低要求,因为我分配的物理内存是1G,那么就按照要求需要2G的swap交换空间,目前只有1G的交换空间。
添加swap交换空间的步骤如下:
第一步:确保系统中有足够的空间来用做swap交换空间,准备在一个独立的文件系统中添加一个swap交换文件,在/tmp中添加1G的swap交换文件
第二步:添加交换文件并设置其大小为1G,使用如下命令
1024000+0 records in
1024000+0 records out
1024000000 bytes (1.0 GB) copied, 14.3745 seconds, 71.2 MB/s
第三步:创建(设置)交换空间,使用命令mkswap
[root@oracle]# mkswap /tmp/swapmkswap: /tmp/swap: warning: don’t erase boot bits sectors //不要擦除引导位扇区,不用管
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=c02cf589-0631-4623-bae6-8aa36b4c3d9b
第四步:检查现有的交换空间大小,使用命令free
[root@oracle]# free -mtotal used free shared buffers cached
Mem: 1287 1212 74 0 1 875
-/+ buffers/cache: 318 968
Swap: 969 0 969
或者检查meminfo文件
[root@oracle]# grep SwapTotal /proc/meminfo第五步:启动新增加的1G的交换空间,使用命令swapon
[root@oracle]# swapon /tmp/swap第六步:确认新增加的1G交换空间已经生效,使用命令free
[[root@oracle]# free -mtotal used free shared buffers cached
Mem: 1287 1212 74 0 4 877
-/+ buffers/cache: 318 968
Swap: 1936 0 1936
第七步:使用vim 修改/etc/fstab文件,使得新加的1G交换空间在系统重新启动后自动生效
在文件最后加入:
以上就是Linux系统CentOS中增加swap空间大小的方法,实际的运维中,经常会遇到的。问题总是无约而至,日常积累的经验,可以帮助你解决一个又一个问题。打好Linux基础,现在从技术一流开始。
--本篇文章转自:http://www.cnblogs.com/yanvcl/p/4883785.html,https://www.jishuyiliu.com/archives/209.html