欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux调整swap大小和swap性能优化 禁用 关闭 卸载 文心一言 chatgpt 有大用 有大大用 有大大大用

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的步骤:

  1. 查看当前的swap空间
    使用swaponcat /proc/swaps命令来查看当前哪些swap分区或文件被激活了。


    bash复制代码

    swapon --show

    # 或者  

    cat /proc/swaps
  2. 关闭swap分区或文件
    使用swapoff命令来关闭一个或多个swap分区或文件。你需要有root权限来执行这个命令。

    例如,如果你要关闭/dev/sdXN这个swap分区(其中XN是分区号,如sda1),你可以执行:


    bash复制代码

    sudo swapoff /dev/sdXN

    如果你使用的是swap文件,比如/swapfile,则执行:


    bash复制代码

    sudo swapoff /swapfile
  1. 永久禁用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命令可以临时关闭交换区,但想要永久生效还需要对系统配置进行相应的修改。在执行这些操作时,请确保你了解这些更改可能带来的影响,并确保系统有足够的可用内存来支持正在运行的进程,以避免可能出现的系统运行缓慢或崩溃等问题。


普通分类: