热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS7系统增加swap的操作方法实例

这篇文章主要给大家介绍了关于CentOS7系统增加swap的操作方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用CentOS7系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关);内存不够用时系统便将内存中的部分数据腾挪到swap中,为正在运行的程序腾出内存。

使用swap能让系统运行更多或更大型的程序,但由于swap的读写速度远逊于内存,频繁使用swap可能让系统和程序有延迟卡顿。

大内存计算机swap有必要吗?

对于内存较小的计算机,swap是非常有必要的。swap的存在能让执行吃内存程序变得可能,执行慢总比不能运行或者奔溃强。但现代计算机动辄8G以上的内存,如非运行大型或专业软件,内存足够日常使用。这种情况下,swap有存在的必要吗?

答案还是看使用场景。个人电脑上运行桌面版Linux并且开启休眠功能,则应该划分不小于内存的swap分区;如果是内存足够大且常年不关机的服务器,没有swap也毫无问题。

ssd硬盘要不要设置swap?

之前的ssd硬盘有读写寿命的问题,因此不建议将swap文件或分区放到ssd硬盘上。

目前的ssd硬盘技术已经升级换代更智能,如果有swap需求,放在ssd硬盘上也没什么问题。

swap设置多大好?

如果开启休眠功能,应该划分swap分区,并且分区大小不能小于内存,建议的值是“内存大小+2G”。

不用休眠功能的服务器,swap可以为文件,一种确定swap大小的实用方法是:1G内存及以下,swap大小为内存的两倍;2-4G内存,与内存同等大小;5-16G内存,swap可固定为4G;17-32G内存,8G swap;33 G及以上,固定为16G swap。

上述方法不绝对,有特殊需求可酌情增减swap大小。

怎样增加swap?

安装操作系统时候可以分区(单独挂载点)形式指定swap,也可以在系统安装完成后动态添加和删除。

查看swap

free命令可以查看系统活动的swap信息,例如:

$ free -m
# 输出如下
#  total used free shared buff/cache available
# Mem:  7976 4979  328  124 2669 2703
# Swap:  0  0  0

第二行是swap信息,可以看到没有活动的swap。

也可以用swapon命令查看活动的swap,例如:

$ swapon -s
# 没有swap信息,所以无输出
# 有swap的输出为
# Filename  Type Size Used Priority
# /swap     file 2097148 281052 -2

增加swap

假设我们打算运行一个非常占用内存的程序,8G物理内存不够,便可借助swap增加系统可用的虚拟内存。操作方法如下:

1、选定或创建一个作为swap的文件(也可以用分区),常用创建指定大小文件的命令有fallocate和dd。例如创建一个8G大小的文件:

# fallocate
sudo fallocate -l 8G /swap
# dd
sudo dd bs=1GB count=8 if=/dev/zero of=/swap 

由于dd有复制的过程执行较慢,实践中建议用fallocate;

2、swap文件会存放内存中的数据,出于安全考虑应限制其它用户的访问:sudo chmod 0600 /swap;

3、将文件格式化为swap文件:sudo mkswap /swap;

4、启用该swap文件:sudo swapon /swap;如果不想使用swap,可用swapoff命令卸载:sudo swapoff /swap;

5、如果希望系统启动后自动加载swap文件,在/etc/fstab文件增加一行: /swap swap swap sw 0 0
增加swap后,可用swapon -s或free -m命令查看swap信息。

swap相关设置

和swap最直接相关,也是影响系统性能的一个设置参数便是vm.swappiness。其值是0-100的整数,指示内存用掉百分之多少时开始使用swap。100表示尽可能使用swap,0则表示只有物理内存不够时才用上swap备胎。对于服务器,建议10-30之间。

设置和更改swappiness的命令是:sudo sysctl vm.swappiness=10 。该命令只对当前系统有效,系统重启后又恢复默认值。要想设置永久生效,在/etc/sysctl.conf中增加或更改对应的设置行:vm.swappiness = 10

参考

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
author-avatar
手机用户2602909133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有