欢迎各位兄弟 发布技术文章
这里的技术是共享的
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
来自 http://blog.csdn.net/a860mhz/article/details/51124153
在Linux系统中,如果你决定关闭swap分区或禁用swap空间,通常是因为你的系统拥有足够的物理内存(RAM),或者你希望避免swap空间带来的性能下降和系统不稳定等问题。以下是如何关闭swap的步骤:
查看当前的swap空间:
使用swapon
或cat /proc/swaps
命令来查看当前哪些swap分区或文件被激活了。
bash复制代码swapon --show # 或者 cat /proc/swaps
关闭swap分区或文件:
使用swapoff
命令来关闭一个或多个swap分区或文件。你需要有root权限来执行这个命令。
例如,如果你要关闭/dev/sdXN
这个swap分区(其中XN
是分区号,如sda1
),你可以执行:
bash复制代码sudo swapoff /dev/sdXN
如果你使用的是swap文件,比如/swapfile
,则执行:
bash复制代码sudo swapoff /swapfile
永久禁用swap:
如果你希望在每次系统启动时都禁用swap,你需要编辑相关的启动配置文件。这通常涉及到修改/etc/fstab
文件,该文件包含了系统在启动时自动挂载的文件系统信息。
打开/etc/fstab
文件并找到与swap相关的行。它们通常看起来像这样:
bash复制代码UUID=some-uuid-here none swap sw 0 0 # 或者对于swap文件 /swapfile none swap sw 0 0
注释掉这些行(在行首添加#
)或完全删除它们。保存文件并退出编辑器。
bash复制代码# UUID=some-uuid-here none swap sw 0 0 # 或者 # /swapfile none swap sw 0 0
这样,在下一次系统启动时,这些swap分区或文件就不会被自动激活了。
linux swapoff 是永久生效吗
Linux的swapoff命令本身并不具有永久生效的特性。swapoff命令用于关闭系统交换区(swap area),执行该命令后,交换区会立即被停用,但这只是临时性的变化。当系统重新启动后,如果/etc/fstab文件中仍然有设置为swap的设备,那么这些设备在启动时仍然会被自动挂载为交换区。
如果想要永久关闭swap,你需要在/etc/fstab文件中注释掉或删除与swap相关的行,这样在系统启动时就不会再自动挂载swap分区或文件。同时,也可以通过修改sysctl配置来降低系统使用swap的倾向性,例如通过执行echo "vm.swappiness = 0" >> /etc/sysctl.conf
来尽量不使用交换分区。但是,这并不意味着完全禁用了swap,而是在内存压力不大时尽量避免使用swap。
总的来说,Linux的swapoff命令可以临时关闭交换区,但想要永久生效还需要对系统配置进行相应的修改。在执行这些操作时,请确保你了解这些更改可能带来的影响,并确保系统有足够的可用内存来支持正在运行的进程,以避免可能出现的系统运行缓慢或崩溃等问题。