搬瓦工VPS SWAP 满了显示红色 &交换分区SWAP大小修改

原创 教程评论868字数 1127

搬瓦工的 KiwiVM 面板的功能挺多的,使用过搬瓦工 VPS 的朋友们基本上肯定也都登陆过,或多或少都登陆过几次。有些朋友买的 VPS 登陆之后,发现 VPS 面板上有一个 Swap 的状态条,后面已经显示了红色,并且显示满了,就有点慌。

如下图所示,就是 Swap 后面那边显示所有 Swap 都已经被占满,颜色也变成了大红色,怪醒目的,看着也怪吓人的。那么 Swap 满了怎么办呢?今天就说明一下这个 Swap 满了的原因和解决方法。文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

搬瓦工VPS注册教程:Bandwagon HOST搬瓦工VPS服务器购买和登录教程文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

一、SWAP满了的原因和影响

1、什么是 Swap

Linux 中 Swap(即:交换分区),类似于 Windows 的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。(参考:SWAP(Linux系统中的交换分区)文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

具体来说,Linux 内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是 Cache Memory (缓存内存)。即使你的程序运行结束后,Cache Memory 也不会自动释放。这就会导致你在 Linux 系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap 空间中,等到那些程序要运行时,再从 Swap 分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。(参考:Linux Swap交换分区介绍总结文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

2、怎么查看 Swap

除了在 KiwiVM 面板中查看,还能通过 SSH 登陆 VPS 之后再查看(SSH 教程参考。SSH登陆之后,输入下面命令:文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

free -h

就会显示一共的 Swap 和可用的 Swap 大小,如下图所示:文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

3、Swap 满了的原因

这个原因很多,可能是开的进程太多了,占用太多的内存以致占用了很多的缓存,也可能是别的进程死了,但是缓存没有清除。文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

总之,就是系统资源使用的比较多导致的。具体是什么进程占用的,还需要我们使用 top 命令或者 ps 命令来排查。文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

4、Swap 满了的影响

其实没啥影响,只要 CPU 不满、内存不满,Swap 满了也无所谓。本身 Swap 就是用来缓存数据的,缓存满了的话,旧的缓存会被自动清除的。所以,一句话,没有影响。文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

但是很多人看着他满了很难受,那么接下来还是介绍几种解决方法。文章源自合一学院-https://unvmax.com/%e6%90%ac%e7%93%a6%e5%b7%a5vps-swap-%e6%bb%a1%e4%ba%86%e6%98%be%e7%a4%ba%e7%ba%a2%e8%89%b2-%e4%ba%a4%e6%8d%a2%e5%88%86%e5%8c%baswap%e5%a4%a7%e5%b0%8f%e4%bf%ae%e6%94%b9.html

二、Swap 满了的解决方法

解决方法很简单,主要有两种:

1、重启大法好

重启了,Swap 自然也被释放了。但是这不是根本的解决方法,过一阵子之后,进程多了,Swap 估计又会满了。

2、增加 Swap 标本兼治

修改、新增SWAP分区的大小

修改大小,我们采取的方法是先删除SWAP分区,然后新建更大的。

1. 删除所有SWAP分区

swapoff -a

可能会有点慢,耐心等待。

2. 新增SWAP分区

这个是搬瓦工目前的默认做法,所以我们也建议采用这个做法。

2.1 创建swap分区的文件:

dd if=/dev/zero of=/root/swapfile bs=1M count=2048

其中 bs是每块的大小,count是块的数量,bs*count,就是swap文件的大小了,这里就是1M*1024=2G。大家可以自己调整count的数量。

此外,/root/swapfile是swap文件的路径,可以根据需求修改。

2.2 格式化交换分区文件:

mkswap /root/swapfile

这里的路径和之前的路径要对应起来。

2.3 启用swap分区文件:

swapon /root/swapfile

2.4 添加开机启动:

修改 /etc/fstab 这个文件,添加或者修改这一行:

/root/swapfile swap swap defaults 0 0

注意,路径还是要对应。最后两个是零,不是欧。

好了,现在可以再看一下swap的大小了(我添加了2G的swap):

搬瓦工的 KiwiVM 面板里面也正常了。

匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证