Linux设置swap分区

本文详细介绍了在Ubuntu和阿里云CentOS8.3系统上创建与删除swap分区的步骤,以及如何调整swappiness参数以优化内存使用。在资源有限的情况下,增加swap分区可以缓解内存不足的问题,但长期依赖swap可能影响系统性能。建议根据实际需求调整内存和swap大小,以确保系统的稳定运行。
摘要由CSDN通过智能技术生成

1.Ubuntu设置swap分区

  • 查看swap位置
cat /proc/swaps

得到你的swap文件的位置,但不一定叫swap,或许叫/dev/sdb5。

  • 关闭并删除较小的swap文件
sudo swapoff /dev/sdb5
sudo rm /dev/sdb5
  • 创建新的swap文件
sudo dd if=/dev/zero of=swap bs=1024 count=8000000

这样就建立了1024Byte*8000000就是8GB的swap文件,of=swap就是文件的名字。

  • 使能新的swap文件
sudo chmod 600 swap
sudo mkswap -f swap
sudo swapon swap
  • 设置开机默认交换区
sudo gedit /etc/fstab

修改旧的swap地址为新的swap地址。保存退出。

  • 验证
cat /proc/swaps

2.阿里云CentOS 8.3设置swap分区

Linux实例SWAP分区的配置和常见问题如何处理_云服务器 ECS(ECS)-阿里云帮助中心

在项目外包团队的服务器上,已经部署了gitlab、MySQL、Redis、两个SpringBoot应用等服务后。因资源有限,只有一台服务器(4核8G)可以共用,需要在上面再部署Nacos和5个Spring Cloud微服务。当部署到第三个微服务的时候,服务器崩溃了,ssh连接不上,需要在阿里云控制台重启服务器。在崩溃之前用top命令定位到是内存不足引起的问题,swap分区的值为0,故通过创建swap分区的方式,解决内存不足的问题。

  • swap的功能与相应内核参数

Linux将物理内存分为内存段的部分被称作“页面”。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放用于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存的总量。交换空间通常是一个磁盘分区(此分区在安装操作系统时,系统通常会默认划分出一段空间用于交换分区,默认将交换空间的大小设定为内存的1倍到2倍),也可以是一个文件。

内核参数中有一个vm.swappiness参数,此参数代表了内核对于交换空间的喜好(或厌恶)程度。Swappiness 可以有 0 到 100 的值,默认的大小通常是60,但也有的是30。设置这个参数为较低的值会减少内存的交换,从而提升一些系统上的响应度。如果内存较为充裕,则可以将vm.swappiness大小设定为30,如果内存较少,可以设定为60。如果将此数值调整的过大,可能损失内存本来能提供的性能,并增加磁盘IO消耗和CPU的消耗。

  • 关于阿里云云主机swap功能

阿里云提供的云服务器(Elastic Compute Service,简称 ECS),是云主机的一种,当前采用的虚拟化驱动是Xen(这一点可以通过bios vendor和virtual type可以看出)。

默认情况下,阿里云云主机的swap功能是没有启用的,原因当然是通过取消swap功能可以降低磁盘IO的占用率来让用户购买更多的内存、提高磁盘寿命和性能。

阿里当前的做法是:1.不创建swap分区,由镜像决定;2.将vm.swappiness设定为0,即永不使用swap分区。

启用swap分区,确实可以降低内存的使用压力,但并不是长久之计,如果云主机上运行的应用确实需要较高的内存,建议还是购买更多的内存。所以我们需要把交换分区的功能打开。

  • swap交换分区创建与删除

一、创建交换区 swap

1、增加4G 大小的 swap

dd if=/dev/zero of=/var/swap bs=1024 count=4096000

if是指input file,of是output file。dev/zero是linux的一种输入设备,用来创建用于初始化的空文件,如临时交换文件,可以提供任何你需要的数目。 bs指 block size ,单位数据块block,读入/输出的块字节大小为1024 个字节,。count=4096000 :数据块(block)数量为4096000 ,即4096000个1024字节(1024字节=1kb)。可以计算swap分区的容量为:4G。(dd命令里的单位M表示1024*1024,k表示1024)

2、创建 swap 文件

mkswap /var/swap

3、加载 swap 文件

swapon /var/swap

执行以上命令可能会出现:“不安全的权限 0644,建议使用 0600”提示,其实已经激活了,可以忽略,修改权限:chmod -R 0600 /var/swapfile

4、设置系统启动时自动挂载分区(添加到/etc/fstab)

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

5、查看分区大小

free -m

如果打印出 Swap:  0  0  0 说明没有分区

二,删除 swap 分区

1、停止使用的分区

swapoff /var/swapfile

2、删除

rm -rf  /var/swapfile
  • 修改swappiness参数

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,具体如下:

[root@timeserver ~]# cat /proc/sys/vm/swappiness
60

也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。

临时调整的方法如下,我们调成30:

[root@timeserver ~]# sysctl vm.swappiness=30
vm.swappiness = 30
[root@timeserver ~]# cat /proc/sys/vm/swappiness
30

这只是临时调整的方法,重启后会回到默认设置的。要想永久调整的话,需要编辑sysctl.conf文件 vi /etc/sysctl.conf,设置vm.swappiness=30:

vm.swappiness = 30

激活设置

[root@timeserver ~]# sysctl -p

在linux中,可以通过修改swappiness内核参数,降低系统对swap的使用,从而提高系统的性能。在swap的过程中系统性能会有所下降,表现为较大的服务延迟。对这种情况,可以通过调节swappiness内核参数降低系统对swap的使用,从而避免不必要的swap对性能造成的影响。
简单地说这个参数定义了系统对swap的使用倾向,默认值为60,值越大表示越倾向于使用swap。可以设为0,这样做并不会禁止对swap的使用,只是最大限度地降低了使用swap的可能性。

通过sysctl -q vm.swappiness可以查看参数的当前设置。

修改参数的方法是修改/etc/sysctl.conf文件,加入vm.swappiness=xxx,并重启系统。这个操作相当于是修改虚拟系统中的/proc/sys/vm/swappiness文件,将值改为XXX数值。如果不想重启系统,可以通过sysctl -p动态加载/etc/sysctl.conf文件,但建议这样做之前先清空swap。

### 回答1: 要扩展Linuxswap分区,可以按照以下步骤进行操作: 1. 确认当前系统中swap分区的情况,可以使用命令“swapon -s”查看。 2. 确认需要扩展的磁盘空间,可以使用命令“df -h”查看。 3. 关闭swap分区,可以使用命令“swapoff -a”关闭所有swap分区。 4. 使用fdisk或者parted等工具对需要扩展的磁盘进行分区。 5. 格式化新的swap分区,可以使用命令“mkswap /dev/sdX”(其中sdX为新分区的设备名)。 6. 启用新的swap分区,可以使用命令“swapon /dev/sdX”(其中sdX为新分区的设备名)。 7. 确认新的swap分区已经启用,可以使用命令“swapon -s”查看。 8. 修改/etc/fstab文件,将新的swap分区添加到开机自动挂载列表中,以便系统重启后自动启用新的swap分区。 以上就是扩展Linuxswap分区的步骤。需要注意的是,在进行分区操作时一定要小心,避免误操作导致数据丢失。 ### 回答2: Linux是一种成熟的操作系统,拥有广泛的用途,比如Web服务器,移动设备开发,桌面电脑等。但是,在Linux服务器运行时,会占用某些内存资源。当这些内存资源用尽时,您的服务器将无法为用户请求提供服务。为了解决这种情况,Linux提供了swap分区的概念。 swap分区Linux系统中的一种辅助性质量。它与操作系统的内存一起工作,扩展了可用内存。swap分区可以在磁盘驱动器的另一个分区中创建。如果您发现Linux服务器不能满足RAM(随机访问存储器)的需求,可以扩展swap分区。 扩展swap分区的第一步是检查您的系统是否有空闲的硬盘空间。您可以使用fdisk命令来查看您的硬盘分区。在fdisk命令中,您应该选择要查看的磁盘,然后使用"p"选项检查分区和可用空间。 然后,您需要使用mkswap命令来创建新的swap分区。该命令需要指定新swap分区的设备文件。您可以使用命令“cat /proc/swaps”来检查当前的swap分区。命令的输出应包括新的swap分区。 接下来,您需要将新的swap分区添加到swap设备列表中。这可以通过修改“/etc/fstab”文件来实现。您需要编辑此文件并添加一个新的条目,以将新的swap分区添加到swap设备列表中。要使更改生效,您需要重新启动服务器。 总之,扩展Linux服务器的swap分区可以增加系统可用的内存。但是,使用swap分区的效率低于使用RAM,因此您应该尽量减少使用swap。在扩展swap分区之前,应注意服务器硬盘上是否有足够的空间,并且仔细核对配置文件的更改,以避免错误和意外的系统崩溃。 ### 回答3: Linux系统中的swap分区是一种虚拟内存,它作为扩展内存使用。当系统的物理内存不足以支持运行的所有应用程序时,系统会将不常用的内存页交换到swap分区中,从而释放出物理内存并使更多的应用程序能运行。 在Linux中,swap分区可以在安装系统时预先分配,也可以后期进行扩展。当系统开始运行时,可以使用命令“free -h”查看swap分区的使用情况和大小。 要扩展swap分区,需要遵循以下步骤: 1、使用“sudo swapoff -a”命令关闭所有的swap分区,以便进行扩展。 2、使用“sudo fdisk /dev/sda”命令(假设第一块硬盘为/dev/sda)打开硬盘分区工具,进入分区编辑模式。 3、对需要扩展的分区进行编辑操作,并将其扩展到所需的大小。 4、使用“sudo mkswap /dev/sda3”命令(假设分区名为/dev/sda3)将分区格式化为swap分区。 5、使用“sudo swapon /dev/sda3”命令重新启用swap分区。 6、使用“sudo swapon -s”命令检查新的swap分区是否已经启用。 以上就是扩展linux swap分区的步骤,务必要小心操作,以免误操作导致不必要的损失。同时还要注意,过多使用swap分区可能会影响系统的性能,因此应该根据实际需要进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值