zoukankan      html  css  js  c++  java
  • CentOS7 下 swap 分区的创建、删除及相关配置

           一般我们在购买云服务器(例如:阿里云ECS、腾讯云服务器)的时候,选择 CentOS 7 系统之后,登录系统,发现 swap 大小为 0(即没有分配)。

            如果我们想在该 服务器上安装 Oracle 数据库,那么必须要给系统分配一定空间的 swap 分区。

            SWAP 分区 就是 Linux 系统下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是 SWAP 分区)虚拟成内存来使用

    一、查看系统的 swap 分配情况

          在添加 swap 分区之前,我们先查看当前系统 swap 是否存在及其使用情况,命令如下:

    free -m
    或者
    swapon -s

          例如:

    # 这是一个腾讯云服务器
    [root@VM_0_5_centos ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           3789          99        3229           0         461        3463
    Swap:             0           0           0
    [root@VM_0_5_centos ~]# swapon -s
    [root@VM_0_5_centos ~]#

          了解硬盘的使用情况:

    df -hal
    或者
    fdisk -l

    二、swap 分区的创建(添加/扩展)、删除及其他维护

    1、添加 swap 分区

    (1)使用 dd 命令创建 swap 交换文件

          使用 dd 命令创建名为 swapfile 的 swap 交换文件(文件名或目录):

    dd if=/dev/zero of=/var/swapfile bs=1024 count=2097152
    
    或者
    
    dd if=/dev/zero of=/var/swapfile bs=1024 count=2048k
    if(即输入文件,input file),of(即输出文件,output file)。

    dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。
    bs=1024  :单位数据块(block)同时读入/输出的块字节大小为1024  个字节即1KB,bs(即block size)。
    count=2048000  :数据块(block)数量为2048000 ,即2048000个1KB。
    可以计算swap分区的容量为:1KB *2097152=1KB *1024(k)*1024*2=2097152=2G。(dd命令里的单位M表示1024*1024,k表示1024)。

          回车后,会执行 2G 的读写操作,系统会卡一段时间,耐心等待执行结果。

    (2)对交换文件格式化并转换为 swap 分区

          第1步执行完毕后,对交换文件格式化并转换为 swap 分区。

    # 格式化交换文件
    mkswap /var/swapfile
    
    # 挂载并激活分区
    swapon /var/swapfile

          执行以上命令可能会出现:“不安全的权限0644,建议使用 0600” 类似提示,不要紧张,实际上已经激活了,可以忽略提示;也可以听从系统的建议修改下swap 文件的权限:

    chmod -R 0600 /var/swapfile

          此时,就可以使用 free -m 或者 swapon -s 命令查看到 swap 分区是否正常添加并激活使用。

          备注: 不能直接使用 mount 命令挂载 swap 分区,因为 swap 分区是没有挂载点的。

    (3)设置开机自动挂载该分区

          修改 fstab 文件,设置开机自动挂载该分区:

    # 命令:
    vim /etc/fstab
    
    # 在改文件末尾添加如下内容后,保存即可:
    /var/swapfile  swap  swap  defaults  0  0

          或者直接执行一条 echo 命令即可追加:

    echo  "/var/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

    例子:

    [root@VM_0_5_centos ~]# swapon -s
    [root@VM_0_5_centos ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           3789          96         120           0        3572        3413
    Swap:             0           0           0
    
    [root@VM_0_5_centos ~]# dd if=/dev/zero of=/var/swapfile bs=1024 count=4096k
    4194304+0 records in
    4194304+0 records out
    4294967296 bytes (4.3 GB) copied, 32.1646 s, 134 MB/s
    
    [root@VM_0_5_centos ~]# ll /var/swapfile 
    -rw-r--r-- 1 root root 4294967296 Dec 26 17:54 /var/swapfile
    
    [root@VM_0_5_centos ~]# mkswap /var/swapfile 
    Setting up swapspace version 1, size = 4194300 KiB
    no label, UUID=500e44db-d66d-4c4d-bb78-0dfa87eb6053
    
    [root@VM_0_5_centos ~]# swapon /var/swapfile
    swapon: /var/swapfile: insecure permissions 0644, 0600 suggested.
    
    [root@VM_0_5_centos ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           3789         100         116           0        3573        3410
    Swap:          4095           0        4095
    [root@VM_0_5_centos ~]# swapon -s
    Filename                Type        Size    Used    Priority
    /var/swapfile                              file    4194300    0    -1

    2、删除某 swap 分区

          先停止正常使用的 swap 分区:

    swapoff /var/swapfile

          删除 swap 分区文件

    rm -rf /var/swapfile

          同时,删除或注释掉我们之前在 fstab 文件里追加的开机自动挂载配置内容:

    /var/swapfile   swap  swap  defaults  0  0

    3、更改 swap 配置(进阶级

          swappiness 值(0 ~ 100):系统对 swap 分区的依赖程度,值越高则越倾向于使用 swap 分区。

          当然,高度依赖 swap 会造成物理内存远未使用完,就使用 swap 分区。我们知道 swap 分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建 swap 分区的初衷。

          我们希望在物理内存即将满负荷时 再使用 swap,这就决定了 swappines 值一般为 10 ~ 60 为宜,固态硬盘可以偏高些。

          查看当前的 swappiness 数值:

    cat /proc/sys/vm/swappiness

          修改 swappiness 值(这里以 50 为例):

    sysctl vm.swappiness=50

          若希望 vm.swappiness=50 永久生效,则需要修改 sysctl 配置文件,直接 echo 命令追加配置内容,重启系统后即可生效:

    echo "vm.swappiness = 50" >> /etc/sysctl.conf

         示例:(在 CentOS 7.5 下查看默认 swappiness 值)

    [root@VM_0_5_centos ~]# cat /proc/sys/vm/swappiness 
    30
  • 相关阅读:
    base加密解密工具类
    根据银行卡号判断所属银行(部分资源网上抄录)
    input autocomplete属性设计输入框自动联想(php实现)
    XFire+Spring构建Web Service经验总结
    php学习手记(持续更新)
    ios上遇到的坑(持续更新)
    随笔
    HTML5微信长按图片不会弹出菜单的解决方法
    能在编辑器里面写出的字符
    css文本两端对齐,分散对齐
  • 原文地址:https://www.cnblogs.com/morgan363/p/12103619.html
Copyright © 2011-2022 走看看