云服务器创建、启用 SWAP 分区详细教程

最近查看云服务器的 CPU 记录,在后半夜的时候总有一段时间飙升到 80%~100%,想来那个时间是各种蜘蛛来访的时段,也就造成了服务器负载飙升的现象。刚好看到了明月登陆博客发了一篇云服务器开启 SWAP 分区的教程,就拿来试试,看看效果如何。

检查了一下默认云服务器没有启用 SWAP 分区。

我这里创建 1G 的 SWAP 分区。

打开 XSHELL 连接到 VPS,输入一下命令:

dd if=/dev/zero of=/mnt/swapfile bs=1MB count=1024

把刚才创建的文件做成 swap 文件

mkswap /mnt/swapfile

开启 swap

swapon /mnt/swapfile

查看状态

swapon -s

查看内存状态

free -m

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

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

vim /etc/rc.local

设置自动挂载

vim /etc/fstab

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

/mnt/swapfile swap swap defaults 0 0

权限设置

chown root:root /mnt/swapfile

chmod 0600 /mnt/swapfile

查看 swappiness 值。

cat /proc/sys/vm/swappiness

如果为 0 ,则将其改为 10

·sysctl vm.swappiness=10

永久设置 swappiness,如果该文件里没有,则追加 vm.swappiness = 10

vim /etc/sysctl.conf

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

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

从下面截图可以看到,可用内存只剩下 20M 了,完毕后重启了一下 lnmp,过程中确实比较缓慢(买之后就没重启过 lnmp,大概有 7 个多月了),等待时间长了一点。

如何关闭 swap 分区?

1. swapoff /data/swap 2. swapoff -a >/dev/null

理论上说很多人都信奉 Linux 服务器不启用 SWAP 的策略,也就是把所有资源都放到内存里面运行,大家都知道内存运行程序比硬盘要快上几百倍了。但是现在天天服务器都被各路蜘蛛一顿撸,估计也会卡出翔。重要的还是 SWAP 设定的合理性和 SWAP 使用频率调整度。

物理内存还够用的情况下,swap 空间上存储的是系统不会频繁使用的数据,调用的次数非常少,性能问题几乎可以忽略。

如果物理内存不够用了呢?系统会把物理内存放不下的数据放进 swap 里,因为它不得不这样做,这样一来就会造成系统频繁的操作 swap 数据。

SWAP 不能代替物理内存使用;SWAP 在小内存主机上必不可少。

2G 和 2G 以下内存的服务器,最好使用 SWAP 分区,设置成和物理内存相同容量 SWAP,2G 以上的,设置为 2G。

以上内容参考了明月登楼的博文 https://lnmp.ymanz.com/lnmp/240.html,魏艾斯博客这里是测试一下,看看添加完 SWAP 分区之后,观察几天系统资源占用和 CDN 命中率是否有一定程度提升,等有结果了再来报告结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

3126
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(999)-如何使用这个系统来开发?

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

3206
来自专栏散尽浮华

Mysql优化系列(0)--总结性梳理

对于一个网站来说,在运行很长一段时间后,数据库瓶颈问题会越来越暴露出来。作为运维人员,对数据库做必要的优化十分重要! 下面总结以往查阅到的以及自己工作中的一些优...

2218
来自专栏数据和云

DB2 Vs MySQL系列 | 体系架构对比

前些日子,我们做了DB2 VS MySQL的数据类型的对比,今天我们将体系架构的对比分享给大家,让大家对这两类数据库有更深刻的认识。 ? DB2体系结构 ? ?...

3255
来自专栏乐沙弥的世界

基于Windows 2012配置SQL Server 2014 AlwaysOn

1)使用与账户启动sqlserver(2节点) 确保2节点使用了域用户账号启动

1862
来自专栏一枝花算不算浪漫

Redis的介绍及使用实例.

3799
来自专栏小特工作室

Navi.Soft31.代码生成器(含下载地址)

1系统简介 1.1功能简述 在Net软件开发过程中,大部分时间都是在编写代码,并且都是重复和冗杂的代码.比如:要实现在数据库中10个表的增删改查功能,大部分代码...

2269
来自专栏云计算教程系列

如何使用Ubuntu 16.04上的osquery监视系统安全性

osquery是一个安全开源工具,它采用操作系统并将其转换为一个巨大的数据库,使用可以使用类似SQL的语句进行查询的表。通过这些查询,您可以监控文件完整性,检查...

7620
来自专栏北京马哥教育

SQLite这么娇小可爱,不多了解点都不行啊

简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。它的设计目标是嵌入式的,目前Android和iOS的设备内置的都是SQLite数...

3748
来自专栏PHP在线

SQL语句执行过程详解

一条sql,plsql的执行到底是怎样执行的呢? 一、SQL语句执行原理: 第一步:客户端把语句发给服务器端执行 当我们在客户端执行 select 语句时,客户...

6046

扫码关注云+社区

领取腾讯云代金券