首页 > 系统相关 >@linux 扩容|缩容 (增加与减小swap分区)

@linux 扩容|缩容 (增加与减小swap分区)

时间:2022-10-09 21:05:39浏览次数:51  
标签:缩容 swappiness 分区 server swap linux root 内存


文章目录

swap分区增加

1.swap的概述

根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大;
例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却发现swap分区空间不够,该如何处理?
针对此种情况,有两种解决方法:一是创建新的swap分区;另一则是创建swap文件. 这里暂时对创建swap文件做说明 创建swap文件如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差

2.swap增加

1)查看当前linux主机swap

[root@server ~]# free -h
total used free

2)增加swap分区

如上所示,当前swap分区的大小为0,假如需要增加1024M的大小。

判定新交换文件的大小,将大小乘以1024来判定块的大小。
例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小

1》#获取1G空间块
[root@server ~]# dd if=/dev/zero of=/home/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 13.303 s, 80.7 MB/s


2》#格式化交换文件,将swap文件格式化成文件系统,系统才能使用
[root@server ~]# mkswap /home/swap
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=72347e52-cd4a-43da-ad5d-e9d303641b4d


3》#启动交换分区文件(立即使用)
[root@server ~]# swapon /home/swap
swapon: /home/swap: insecure permissions 0644, 0600 suggested.
#要停止使用新创建的swap文件,只要执行 swapoff/home/swap命令即可



4》#查看当前swap
[root@server ~]# free -h
total used free

3)swap永久设定

系统再次启动时,自动启用刚增加的swap,可编辑/etc/fstab文件

#添加至fstab
[root@server ~]# vim /etc/fstab

4)修改swap空间的swappiness

【降低对硬盘的缓存】

linux 会使用硬盘的一部分做为SWAP分区;
用来进行进程调度–进程是正在运行的程序–把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,
睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给‘活动’的进程,从而减小内存消耗,系统运行卡顿

当内存够大,系统应不必太多的使用swap分区, 我们可以通过修改 swappiness 的数值,控制swap使用频率。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
在Center os里面,默认设置swappiness这个值等于30

如果内存较小,而进程调度频繁,硬盘的响动就会大了,这样会增加系统功耗
1个G的内存可修改为10
2个G的可改为5
当内存足够大,直接可以设置为0

1》#查看你的系统里面的swappiness
[root@server ~]# cat /proc/sys/vm/swappiness
30



2》#临时修改swappiness
这只是临时性的修改,重启后会恢复默认30
[root@server ~]# sysctl vm.swappiness=10


3》#永久修改生效
[root@server ~]# echo 'vm.swappiness=10' >> /etc/sysctl.conf
或者
[root@server ~]# vim /etc/sysctl.conf
vm.swappiness=10

3.swap性能优化

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

1)查看swap

#使用df -h和fdisk - l命令查看一下当前分区情况,直接使用free查看
[root@server ~]# free -h
total used free

2)关闭swap

1》直接使用swapoff关闭
[root@server ~]# swapoff -a
2》#使用swapoff指定路径关闭
[root@server ~]# swapoff /dev/....
3》#查看当前swap状态
[root@server ~]# free -m

3)swap分区缩容

1》#使用lvreduce命令把swap分区减小512M
lvreduce -L -512M swap路径
[root@server ~]# lvreduce -L -512M /dev/mapper/vg_"hostname"-lv_swap
输入y,确定,看到提示swap减小了4GB。

2》#重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:
[root@server ~]# mkswap /dev/mapper/vg_"hostname"-lv_swap


3》#swapon开启swap分区:
[root@server ~]# swapon /dev/mapper/vg_"hostname"-lv_swap


4》#查看当前swap状态
[root@server ~]# free

4.闲置空间利用

1》#查看闲置空间,把多余的挂载到/root目录或者 / 目录
[root@server ~]# vgdisplay
显示空闲的磁盘

2》#重新扩容到别的目录
[root@server ~]# lvextend -L +4G /dev/mapper/VolGroup-lv_root


3》#激活使用
[root@server ~]# resize2fs -p /dev/mapper/VolGroup-lv_root

4》#查看当前的大小
[root@server ~]# df -h


5》#调整swap分区亲和性
[root@server ~]# echo 'vm.swappiness=10' >> /etc/sysctl.conf


标签:缩容,swappiness,分区,server,swap,linux,root,内存
From: https://blog.51cto.com/u_15166421/5741550

相关文章

  • 各种linux安装软件的方式
    ......
  • @开源镜像站(linux系统:Center OS|Ubuntu|Debian)
    文章目录​​1.开源镜像​​​​2.国内开源镜像站​​​​3.国外开源镜像站(官方镜像站)​​1.开源镜像开源镜像站即一个放置开源系统镜像文件的站点;免费提供镜像文件下载下来......
  • 在 Linux 虚拟机上扩展根文件系统 扩容(azure cloud)
    文章目录​​linux文件系统扩展​​​​1.登录azurecloud​​​​2.进入服务器,查看当前的文件系统​​​​3.服务器关机(关机扩容)​​​​4.服务器上文件系统扩展调整​​li......
  • @zabbix监控(snmp监控linux主机)
    文章目录​​zabbix使用snmp监控linux​​​​1.服务端部署snmp​​​​2.客户端部署snmp​​​​3.测试snmp状态​​​​4.zabbix-web添加主机​​zabbix使用snmp监控linux......
  • mac or linux 简单编译运行 cpp
    =$1target=${origin%.*}g++$origin-o$target&&./$target......
  • Linux上安装Redis
    本篇文章是基于CentOS7,安装Redis版本为redis-6.2.6。一、下载并解压Redis1、下载redis:wgethttps://download.redis.io/releases/redis-6.2.6.tar.gz也可以直接下载......
  • 2022-2023-1 2021131蓝宇 实验一 熟悉Linux命令-2-gcc
    一、实验目的二、实验步骤三、实验过程中遇到的问题及解决四、实验感想一、实验目的熟悉Linux开发环境并学会Linux开发环境的配置和使用,熟悉arm箱的使用,熟悉以下知识点......
  • linux 如何查找并结束僵尸进程
    当时用top命令查看时,发现zombie数字不是0,就说明有僵尸进程了。寻找僵尸进程ps-ef|grep杀掉该进程kill-9[pid]......
  • linux top命令
    linuxtop命令VIRT,RES,SHR,DATA的含义VIRT:virtualmemoryusage虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际......
  • LINUX第三章学习笔记——Unix/Linux 进程管理
    第三章Unix/Linux进程管理多任务处理指的是同时进行几项独立活动的能力逻辑并行性称为“并发”多个CPU或处理器内核的多处理器系统中,可以在不同CPU上实时并发执......