返回顶部
首页 > 资讯 > 精选 >CentOS7上怎么添加Swap交换空间
  • 161
分享到

CentOS7上怎么添加Swap交换空间

2023-06-10 06:06:27 161人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Centos7上怎么添加Swap交换空间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7上怎么添加Swap交换空间”吧!前言如何让服务器响应更快?如何避免应用

这篇文章主要讲解了“Centos7上怎么添加Swap交换空间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7上怎么添加Swap交换空间”吧!

前言

如何让服务器响应更快?如何避免应用出现内存不足的错误?最简单的方法就是增加交换空间。Swap是存储盘上的一块自留地,操作系统可以在这里暂存一些内存里放不下的东西。

这从某种程度上相当于增加了服务器的可用内存。虽然从swap读写比内存慢,但总比没有好,算是内存不够时的安全网。

如果没有swap,则服务器一旦内存不足,就会开始终止应用以释放内存,甚至会崩溃,这会让你丢失一些还没来得及保存的数据,或者造成当机。有些应用明确要求系统配置swap以确保数据访问的可靠性。

本文介绍如何在CentOS 7服务器上创建并启用swap文件。

注:swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机服务的用户,我们不推荐启用swap。这甚至会影响到跟你的虚拟机共用宿主机的其他用户。

对于DigitalOcean用户,提升性能的最佳方法就是更新Droplet。通常来说,升级后的主机表现都会有所提升,并且更不容易受到硬件问题的影响。

准备工作

首先,你需要一台CentOS 7服务器,配置过具备sudo权限的非root用户(配置过程可参考这个教程的第一到第四步骤)。

准备就绪后,以该用户名ssh到你的CentOS服务器上,准备安装swap文件。

检查系统的Swap信息 

首先我们需要检查系统的存储,看看是否已经配置过swap。一个系统可以设置多个swap文件或分区,不过一般来说一个就够了。

使用swapon命令可以检查系统是否已经配置过swap,这是一个通用的swap工具。使用-s标签可列出当前存储设备上的swap使用情况:

swapon -s

如果该命令没有返回出结果,则代表该系统尚未配置过swap。

或者,我们也可以使用free工具来查看系统的整体内存使用情况,这里可以看到内存和swap的使用状态(显示单位为MB):

free -m             total       used       free     shared    buffers     cachedMem:          3953        315       3637          8         11        107-/+ buffers/cache:        196       3756Swap:            0          0       4095

这里可以看到我们这个系统的total swap空间为0,即没有配置过swap。这与我们在swapon里看到的结果相符合。

检查可用的存储空间

通常,我们建立一个单独的分区作为swap。然而有时候由于硬件或软件的限制,新建分区的方式无法实现,这种情况下就可以建立一个swap文件来实现同样的功能。

开始之前,先检查一下磁盘的可用空间。输入如下指令:

df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 59G 1.5G 55G 3% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 8.3M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup

这里的-h标记是为了告诉dh将信息输出为对人类友好的格式,比如以MB或GB为单位输出空间使用和空余情况,而不是直接输出内存块的个数。

从第一行可以看到我们的存储分区上还有59GB的空间剩余,这足够我们操作了。(我这是一台中等规模的新建云主机,每个人的情况可能有很大不同。)

合适的swap空间是多大?关于这个问题有很多种选择,这取决于你的应用需求和你个人的偏好。一般来说,内存容量的两倍就是个不错的起点。

我的系统内存有4GB,如果设置8GB的swap会占据太多空间,所以我决定只设置4GB就好。

创建Swap文件

接下来我们将在文件系统上创建swap文件。我们要在根目录(/)下创建一个名叫swapfile的文件,当然你也可以选择你喜欢的文件名。该文件分配的空间将等于我们需要的swap空间。

最快捷的创建方式是fallocate命令,该命令能够创建一个预分配指定大小空间的文件。输入如下指令创建一个4GB的文件:

sudo fallocate -l 4G /swapfile

输入密码后,该swap文件将立即创建完毕。我们可以用ls命令检查文件大小:

ls -lh /swapfile -rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile

至此,我们的swap文件就创建完毕了。

启用Swap文件

现在我们已经有了swap文件,但系统还不知道应该使用该文件作为swap,这就需要我们告知系统将该文件格式化为swap并启用起来。

首先我们需要更改swap文件的权限,确保只有root才可读,否则会有很大的安全隐患。使用chmod命令进行权限操作:

sudo chmod 600 /swapfile

如此,该文件的读写都只有root才能操作。使用ls -lh命令检查一下:

ls -lh /swapfile -rw------- 1 root root 4.0G Oct 30 11:00 /swapfile

然后,使用如下命令告知系统将该文件用于swap:

sudo mkswap /swapfile Setting up swapspace version 1, size = 4194300 KiB no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf

现在,这个swap文件就可以作为swap空间使用了。输入如下命令开始使用该swap:

sudo swapon /swapfile

我们可以输入如下命令来确认一下设置是否已经生效:

swapon -s Filename Type Size Used Priority /swapfile file 4194300 0 -1

可以看到返回的结果中已经有我们刚才设置的swap。再使用free工具确认一下:

free -m total used free shared buffers cached Mem: 3953 315 3637 8 11 107 -/+ buffers/cache: 196 3756 Swap: 4095 0 4095

至此,我们的swap已经设置完毕,操作系统会在需要的时候使用它。

使Swap文件永久生效

至此我们已经在系统中启用了swap文件,然而一旦系统重启后,服务器还不能自动启用该文件。要让系统在重启后自动生效swap,我们可以通过修改fstab文件来实现(这是一个管理文件系统和分区的表)。

用sudo权限打开该文件编辑:

sudo nano /etc/fstab

在文件末尾加入下面这行内容,告诉操作系统自动使用刚才创建的swap文件:

/swapfile   swap    swap    sw  0   0

添加完毕后,保存退出。以后服务器每次重启都会检查该文件并自动启用swap。

更改Swap配置(可选)

有几个涉及swap的选项可能会影响到系统的性能表现。大部分情况下这些选项是可选的,具体要修改成什么样则取决于你的应用需求以及个人偏好。

Swappiness

swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。

该数值越接近于0,系统越倾向于不进行swap,仅在必要的时候进行swap操作。由于swap要比内存慢很多,因此减少对swap的依赖意味着更高的系统性能。

该数值越接近于100,系统越倾向于多进行swap。有些应用的内存使用习惯更适合于这种情况,这也于服务器的用途有关。

输入如下命令查看当前的swappiness数值:

cat /proc/sys/vm/swappiness 30

CentOS 7默认设置了30的swappiness,这对于大部分桌面系统和本地服务器是比较中庸的数值。对于VPS系统而言,可能接近于0的值是更加合适的。

使用sysctl命令可以修改swappiness。比如将swappiness设为10:

sudo sysctl vm.swappiness=10 vm.swappiness = 10

本次修改将一直生效到下次重启前。如果希望永久修改该数值,则需要编辑sysctl配置文件:

sudo nano /etc/sysctl.conf

将以下内容粘贴到文件末尾:

vm.swappiness = 10

编辑完成后,保存退出,之后服务器每次重启的时候会将swappiness设置为该值。

缓存压力(Cache Pressure ) 

另一个可以考虑更改的配置项是vfs_cache_pressure,该配置项涉及特殊文件系统元文件条目的存储。对此类信息的频繁读取是非常消耗性能的,所以延长其在缓存的保存时间可以提升系统的性能。

通过proc文件系统查看缓存压力的当前设定值:

cat /proc/sys/vm/vfs_cache_pressure 100

这个数值是比较高的,意味着系统从缓存中移除inode信息的速度比较快。一个保守一些的数值是50,使用sysctl命令进行设置:

sudo sysctl vm.vfs_cache_pressure=50 vm.vfs_cache_pressure = 50

这条命令仅在重启前有效。要让该设置永久有效,需要编辑sysctl配置文件:

sudo nano /etc/sysctl.conf

在文件末尾添加如下内容:

vm.vfs_cache_pressure = 50

保存退出,服务器就会在每次重启后都自动将缓存压力设置为50了。

总结 

至此,我们的系统内存就获得了一些喘气的空间。有了swap空间可以有效避免一些常见的问题。

如果你仍然会遇到内存不足(OOM,out of memory)的错误信息,或者你的系统不能运行你需要的应用,那么最好的方法是优化你的应用配置或者升级你的服务器,不过配置swap空间也不失为一个灵活的节省方案。

感谢各位的阅读,以上就是“CentOS7上怎么添加Swap交换空间”的内容了,经过本文的学习后,相信大家对CentOS7上怎么添加Swap交换空间这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: CentOS7上怎么添加Swap交换空间

本文链接: https://lsjlt.com/news/259557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CentOS7上怎么添加Swap交换空间
    这篇文章主要讲解了“CentOS7上怎么添加Swap交换空间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7上怎么添加Swap交换空间”吧!前言如何让服务器响应更快?如何避免应用...
    99+
    2023-06-10
  • 在Linux系统上如何增加swap交换空间
    本篇文章给大家分享的是有关在Linux系统上如何增加swap交换空间,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Linux系统中增加服务器swap交换空间大小是为了防止应用...
    99+
    2023-06-28
  • swap分区详解(创建swap分区,启用swap交换空间,关闭swap交换空间)
    文章目录 swap分区什么是swap分区swap分区使用情况查看工具free案例 swapon 创建swap分区过程 swap分区 什么是swap分区 swap分区是指在Linux操作系统中为了提高系统运行效率...
    99+
    2023-08-19
    linux 运维 服务器
  • Linux怎么检查Swap交换空间
    要检查Linux系统中的Swap交换空间,可以使用以下命令: 使用free命令查看Swap交换空间的使用情况: free -h ...
    99+
    2024-04-15
    Linux
  • Centos7中添加、删除Swap交换分区的方法
    Swap介绍: linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存的总量。 Swap即:交...
    99+
    2022-06-04
    centos添加swap分区 centos7 创建swap分区 centos swap分区
  • Xen VPS下怎么添加swap交换分区
    本篇内容主要讲解“Xen VPS下怎么添加swap交换分区”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Xen VPS下怎么添加swap交换分区”吧!进入目录 cd /var/ 2、获取256M...
    99+
    2023-06-13
  • 在Ubuntu 18.04上添加交换空间的方法
    https://www.digitalocean.com/... 如何在Ubuntu 18.04上添加交换空间 Brian Boucheron 本教程的先前版本由Justin Ellingwood编写 介绍 防范应用程序...
    99+
    2022-06-04
    Ubuntu 添加交换空间 Ubuntu 交换空间
  • Linux如何检查Swap交换空间
    这篇文章主要介绍“Linux如何检查Swap交换空间”,在日常操作中,相信很多人在Linux如何检查Swap交换空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux如...
    99+
    2023-01-29
    linux swap
  • 怎么在Linux系统上使用交换文件扩展swap空间
    本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L...
    99+
    2023-06-12
  • SUSE交换空间swap的操作如何进行
    这期内容当中小编将会给大家带来有关SUSE交换空间swap的操作如何进行,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天所要讲的是SUSE交换空间swap的操作,希望今天所讲的知识,能让你学会SUSE交...
    99+
    2023-06-17
  • Linux检查Swap交换空间的四个命令是什么
    Linux检查Swap交换空间的四个命令:1、linux free命令,可以使用free命令检查交换空间,使用free -h命令显示内存和交换利用率;2、swapon命令,可以使用swapon检查特定分区,逻辑卷或文件的交换;3、top命令...
    99+
    2024-04-02
  • CentOS7服务器中的SWAP交换区是怎样的
    这期内容当中小编将会给大家带来有关CentOS7服务器中的SWAP交换区是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。腾讯云默认没有交换区,交换区相当于虚拟内存,即使用硬盘作为备用内存,将内存中一...
    99+
    2023-06-26
  • Linux检查Swap交换空间的五个命令小结
    前言 linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。例如:安装redhat的时候,你可以默认划分硬盘空...
    99+
    2022-06-04
    linux swap分区 linux swap扩容 linux入门
  • Python 中怎么写 swap()交换
    ******Python 不需要交换函数swap(),如果要交换a,b的话,只需要使用如下语句: a,b = b,a 即可(因为:Python以引用方式管理对象,你可以交换引用,但通常不能交换内存中的对象值。当然你也不需要这样做。)...
    99+
    2023-01-31
    Python swap
  • linux系统怎么增加swap分区空间
    这篇文章主要介绍“linux系统怎么增加swap分区空间”,在日常操作中,相信很多人在linux系统怎么增加swap分区空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux系统怎么增加swap分区空间...
    99+
    2023-06-12
  • 怎么增大swap交换分区
    本篇内容介绍了“怎么增大swap交换分区”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!# dd if=/dev/zero of=/.swap...
    99+
    2023-06-10
  • linux怎么扩容swap空间
    要扩展Linux的swap空间,可以按照以下步骤进行操作: 首先,使用 free -h 命令检查当前系统的swap空间使用情况。...
    99+
    2024-04-09
    linux
  • CentOS中怎么配置swap交换区
    这篇文章主要讲解了“CentOS中怎么配置swap交换区”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS中怎么配置swap交换区”吧!CentOS 作为linux世界里最稳定的服务...
    99+
    2023-06-10
  • 在linux上如何使用交换文件扩展交换空间
    这篇文章给大家分享的是有关在linux上如何使用交换文件扩展交换空间的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换...
    99+
    2023-06-16
  • CSS3中怎么实现swap交换动画
    本篇文章为大家展示了CSS3中怎么实现swap交换动画,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先得将HTML结构设计好,一个固定的窗口,然后一个带有黑色背景...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作