Linux系统怎么调整swap分区大小LinuxServer

印迹发布于:2019-2-17 1339

swap主要有两个用处

1、当系统需要比物理内存更多的内存空间的时候,内核会把内存里边用得比较少的内存页面swap out到交换分区,以空出物理内存给当前应用来快速运行。

2、某些应用启动的时候初始化但是随后的应用运行期间不再使用的内存页面,系统会把这部分页面也swap out到交换空间,以留出物理内存页面给其他应用或者磁盘缓存。

    linux的这种内存管理策略主要用来节约物理内存,提升当前应用的执行速度。但是swap不能当做扩充内存的一个手段,因为swap读写属于磁盘io,要比物理内存的io慢得多。

    如果系统频繁的swap out内存页面到交换分区,随后又swap in交换分区到内存页面,这说明系统在寻找空闲内存来是多个应用同时运行,也就是说当前系统任务比较繁忙,但是可用内存又不足了,这时候唯一的办法只能通过提高物理内存来解决。

因此衡量一个系统内存用量是否到了瓶颈,就可以通过观察swap用量和si so的频率来评估。

    之前分配的物理内存是1G,需要2G的swap交换空间,但目前只有1G的交换空间。


一、添加swap交换空间的步骤(环境:CentOS):

第一步:确保系统中有足够的空间来用做swap交换空间,准备在一个独立的文件系统中添加一个swap交换文件,在/tmp中添加1G的swap交换文件
第二步:添加交换文件并设置其大小为1G,使用如下命令

[root@oracle]# dd if=/dev/zero of=/tmp/swap bs=1MB count=1024
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/swap
mkswap: /tmp/swap: warning: don’t erase boot bits sectors;

第四步:检查现有的交换空间大小,使用命令free

[root@oracle]# free -m
total     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 -m
total     used     free     shared     buffers     cached
Mem:       1287     1212     74      0               4               877
-/+ buffers/cache: 318   968
Swap:       1936         0     1936

第七步:使用vim 修改/etc/fstab文件,使得新加的1G交换空间在系统重新启动后自动生效
在文件最后加入:

/tmp/swap swap swap defaults 0 0

以上就是Linux系统CentOS中增加swap空间大小的方法,实际运维中经常会遇到。问题总是无约而至,日常积累的经验,可以帮助解决一个又一个问题。


二、环境:RH系统(AS4) :

  如何在安装Linux之后自己修改Swap分区大小

  假如您不清楚swap到底是什么,或分区的概念,那么下面的过程对您来讲可能会有一定的风险。
  自己扩大Swap也是比较方便的。您必须有root权限,过程中一定要很小心,一不小心就破坏了整个硬盘的数据,执行下面的过程之前您需要三思而行,错误后的后果由执行者自己承担,我这个script只是作为参考。

1. 以root进入控制台
2. #swapoff -a          #停止交换分区
3. #fdisk /dev/hda       #swap所在硬盘的硬盘设备文档,可能会有所不同,您最好察看/etc/fstab 将有swap这一行的hd*后面的数字去掉
4. 在fdisk里自己操作,用d先删除swap分区,然后再n添加分区(添加时硬盘必须要有可用空间,空间大小的参数是柱面数cylinders,不是字节,您需要自己计算,p命令能够看到每柱面的字节数),然后再用t将新添的分区id改为82(linux swap类型),每一步后都用w将操作实际写入硬盘(没用w之前您的操作无效)。再说一遍,这步必须很小心,一弄错您的系统可能就坏了,数据丢失。
5. #mkswap /dev/hda6       #格式化swap分区,这里的hda6要看您加完后p命令显示的实际分区设备名
6. #swapon /dev/hda6       #看是否能够启动新的swap分区
7. 修改/etc/fstab 中swap这一行的设备名如/dev/hda6(假如您没改变位置,一般是和以前相同的),让他启动时自己加载。需要注意的是,假如您这里原来是个 LABEL=SWAP-hda6这样的东西,那么您有两个选择:第一.将他改成实际的设备名,如:/dev/hda6。第二.不改变 /etc/fstab,在第5步中用的命令行需要稍有不同 #mkswap -L SWAP-hda6 /dev/hda6 就是说格式化时为swap分区加上LABEL,该功能只有在新的发行中才支持,能够用mkswap --help察看他是否支持-L option.
8. 重启,一切ok

三、Linux系统中增加Swap分区大小

一、查看系统当前的分区情况:
>free -m
             total       used       free     shared    buffers     cached
Mem:           438        432          6          0          8        141
-/+ buffers/cache:        282        156
Swap:         2047       1375        671
二、创建用于交换分区的文件:如果要增加2G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小
>dd if=/dev/zero of=/home/swap bs=block_size count=number_of_block
dd if=/dev/zero of=/home/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 60.4492 seconds, 34.7 MB/s
三、设置交换分区文件:
>mkswap /home/swap
四、立即启用交换分区文件:
>swapon /home/swap
五、若要想使开机时自启用,则需修改文件/etc/fstab中的swap行:
/home/swap swap swap defaults 0 0
[root@test ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           438        433          5          0          2     
267
-/+ buffers/cache:        163        275
Swap:         4047       1465       2581


http://www.virplus.com/thread-111.htm
转载请注明:2019-2-17 于 VirPlus 发表

推荐阅读
最新回复 (0)

    ( 登录 ) 后,可以发表评论!

    返回