自己的腾讯云服务器搭建的zabbix监控中,提示Lack of free swap space

腾讯的官方说明在这:

https://cloud.tencent.com/document/product/362/3597

查看机器上面状态如下:

Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕,这里我们只能采用后者。

服务器的物理内存是2G的,按照1~2倍原则,我将swap文件设置为4GB。

新建的4G swap路径:/mnt/swap(路径和交换文件名称可以自定义)

步骤如下:

1、创建用于交换分区的文件:dd if=/dev/zero of=/mnt/swap bs=4096 count=1024000(这条命令运行完后稍等一会)

2、设置交换分区文件:mkswap /mnt/swap

3、启用交换分区文件:swapon /mnt/swap

注:dd创建的文件总大小等于bs * count。本例是4096k * 1024000=4G。
注释:
dd:可以创建指定大小(4G)的文件
if:指定输入设备
/dev/zero:无限0资源
of:指定输出设备
bs:每个块的大小
count:块的数量

=========以下操作能确保 swap 更安全,且重启后有效===========

查看 vim /etc/rc.local 如果有 swapoff -a 修改为 swapon -a,我这里是没有这个的,就不管了。

vim /etc/rc.local

设置自动挂载,打开文件:vim /etc/fstab

把下面命令添加到最下面的空行。

/mnt/swap swap swap defaults 0 0

查看状态

swapon -s

查看内存状态

free -m

当不需要交换文件时,可以使用以下步骤将其删除:

禁用交换文件:swapoff /mnt/swap

删除交换文件:rm -f /mnt/swap

编辑vim /etc/fstab文件,删除以下内容,在系统下次引导时就不会启用交换文件了。

/mnt/swap swap swap defaults 0 0

权限设置:

chown root:root /mnt/swap

chmod 0600 /mnt/swap

查看 swappiness 值。

cat /proc/sys/vm/swappiness

如果为 0 ,则将其改为 10,意思是空闲内存少于 10% 时才使用 SWAP 分区

sysctl vm.swappiness=10

永久设置 swappiness,如果该文件里没有,则打开 vim /etc/sysctl.conf 配置文件追加 vm.swappiness = 10

重启,那些永久设置项就生效了。

swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。

参考文章:

https://help.aliyun.com/knowledge_detail/42534.html

https://cloud.tencent.com/developer/article/1141273

腾讯云CentOS7.4服务器添加swap分区的更多相关文章

  1. 给阿里云主机添加swap分区,解决问题:c++: internal compiler error: Killed (program cc1plus)

    前言 今天安装spdlog,一个快速得C++日志库,按照文档步骤,不料出现了一堆错误,像c++: internal compiler error: Killed (program cc1plus)等一 ...

  2. Linux学习24-腾讯云服务器开启swap分区

    前言 最近有小伙伴买的腾讯云的1核1G入门级服务器,发现部署的服务多了后,会自动停掉一些docker的的容器. 新买的腾讯云主机没有提供Swap分区,理由是由于主机经常因为内存使用率过高,频繁使用Sw ...

  3. 阿里云服务器linux主机如何添加swap分区

    为什么要添加Swap分区?swap分区,即交换区,作用为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作 ...

  4. 阿里云CentOS7.3服务器通过Docker安装Nginx

    前言 小编环境: 阿里云CentOS7.3服务器 docker 下面分享一次小编在自己的阿里云CentOS7.3服务器上使用Docker来安装Nginx的一次全过程 温馨小提示: 如果只是希望单纯使用 ...

  5. 腾讯云CENTOS7安装MSSQL2017

    腾讯云CENTOS7安装MSSQL2017 mkdir -p /opt/sqlserver2017cd /opt/sqlserver2017/ 下载离线包:wget https://packages. ...

  6. 阿里云云主机添加swap分区与swap性能优化

    1.swap的功能与相应内核参数 Linux 将物理内存分为内存段的部分被称作“页面”.交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放用于页面的内存.物理内存和交换空间 ...

  7. linux添加swap分区【转】

    概述 添加交换分区主要是因为安装oracle时碰到交换分区太小时无法安装的情况,这时候就需要添加交换分区了. 操作简介 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap ...

  8. 腾讯云CentOS7.0使用yum安装mysql

    背景: 今天才申请了腾讯云+校园计划的1元服务器,(https://www.qcloud.com/event/qcloudSchool)安装了Centos7.0,在安装mysql的时候,使用yum l ...

  9. 腾讯云CentOS7安装LNMP+wordpress

    许多云主机都有学生优惠,于是我趁着现在大一买了个腾讯1元云主机+免费cn域名(高中生的话就别想了).鉴于我只知道用服务器安装博客,别的用途不了解,所以我就去安装wordpress. 而由于我看的教程有 ...

随机推荐

  1. vsCode如何从github拉取项目

    最近刚使用vscode,有些操作还不太会,所以记录下. 1.开vscode使用CTRL+`或者点击查看到集成终端打开控制终端. 2.在终端中cd到存放文件夹下面,然后git clone https:/ ...

  2. jQuery 学习笔记(4)(文本值相关方法、操控CSS方法、位置和尺寸方法)

    1.文本值相关方法 .html() == .innerHTML $("div").html("<span> ...</span>") / ...

  3. UIScrollView上面的UIButton点击始终在中间

    -(void)btnClick:(IdleTopChoseBtn *)btn{ btn.selected = YES; _choseBtn.selected = NO; _choseBtn = btn ...

  4. mongoose findByIdAndUpdate不执行的解决方法

    请参考Mongoose的文档 1.findOneAndUpdate([query], [doc], [options], [callback]) 有callback传递才执行. 2.exec是prom ...

  5. mysql----------mysql5.7.11导入sql文件时报错This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled

    1.导入sql文件出现如下错误. [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in ...

  6. php – Laravel 5查询关系导致“调用成员函数addEagerConstraints()on null”错误( 转载)

    php – Laravel 5查询关系导致“调用成员函数addEagerConstraints()on null”错误   我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我 ...

  7. 对字符串md5加密

    public String getMD5(String str) { try { // 生成一个MD5加密计算摘要 MessageDigest md = MessageDigest.getInstan ...

  8. 基于Jenkins实现持续集成【持续更新中】

    持续集成 1.什么是持续集成:Continuous integration (CI)持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生 ...

  9. C#-----类FileStream的使用

    1.枚举类FileMode 指定操作系统打开文件的方式 CreateNew  指定操作系统应创建一个新的文件 Create  指定操作系统应创建一个新的文件. 如果该文件已存在,则会覆盖它 Open  ...

  10. 一定要知道的,那些Linux操作命令

    一定要知道的,那些Linux基本操作命令(一) 目录 1.文件和目录操作命令 2.用户和用户组操作命令 3.vim编辑器操作命令 4.打包和解压操作命令 5.系统操作命令 为什么要学习linux? 1 ...