Linux调整swap大小和swap性能优化

发布时间:2017-12-11 00:58:53编辑:丝画阁阅读(690)

Linux调整swap大小和swap性能优化

机器上的swap空间太大,但是由于硬盘io较慢,所以决定做一些优化:调小swap,然后尽可能的"禁用"swap。

  • 1、先“df -h”和“fdisk - l”命令查看一下当前分区情况
    /dev/mapper/vg_"hostname"-lv_swap就是swap分区,为2G。swap分区亦可用free命令查看到。
  • 2、用swapoff命令关闭交换分区(或者用swapoff -a):
    # swapoff /dev/mapper/vg_"hostname"-lv_swap
    然后用free命令检查下swap是否变为0了。
  • 3、用lvreduce命令把swap分区减小4096M:
    # lvreduce -L -4096M /dev/mapper/vg_"hostname"-lv_swap
    输入y,确定,看到提示swap减小了4GB。
  • 4、重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:
    # mkswap /dev/mapper/vg_"hostname"-lv_swap
  • 5、swapon开启swap分区:
    # swapon /dev/mapper/vg_"hostname"-lv_swap
    然后用free命令检查下swap是否减小了4GB
  • 6、把多余的空间挂载到/root目录
    # vgdisplay
    显示空闲的磁盘 4GB
    #lvextend -L +4G /dev/mapper/VolGroup-lv_root
  • 7、激活大小
    #resize2fs -p /dev/mapper/VolGroup-lv_root
  • 8、df -h查看大小
  • 9、尽可能"禁止"使用swap
    # echo 'vm.swappiness=10'>> /etc/sysctl.conf

注:(为什么要尽可能避免使用swap? # cat /proc/sys/vm/swappiness,值默认值是60, swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。现在服务器的内存动不动就是上百G,或者云主机架构,机器io太慢会极大的影响机器性能,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。另:在大内存服务器中我们需要设置这个值为0,尤其是在Mysql服务器上)

临时修改方案:
# sysctl vm.swappiness=10
vm.swappiness = 10
# cat /proc/sys/vm/swappiness
10
这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

永久修改方案:
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
或者:
# echo 'vm.swappiness=10'>> /etc/sysctl.conf

关键字