Files
Colinx-Blog/content/posts/坑爹的阿里云 & Swap 的重要性.md
2022-05-05 20:36:09 +08:00

59 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 坑爹的阿里云 & Swap 的重要性
date: 2019-09-12
lastmod: 2020-04-29
description: 在一次编译 VSCode 的项目中,跨越千山万水,解决重重依赖后,终于来到了编译环节。然而才开始没多久,就出现了一个匪夷所思的报错。
categories:
- 技术
tags:
- 服务器
---
在一次编译 VSCode 的项目中,跨越千山万水,解决重重依赖后,终于来到了编译环节。然而才开始没多久,就出现了一个匪夷所思的报错。
谷歌一番,又到 /var/log/message 里查看了一番系统日志,竟然说是内存爆满,进程被 kill 了。想来我阿里云的那台服务器内存的统计曲线基本就没超过一半,今儿个怎么会出现内存爆掉的情况。又是一顿折腾发现这台阿里云的机子 Swap 大小竟然为 0Swap 为物理内存达到一定临界值之后,系统将磁盘的一部分空间作内存使用,一般在 Windows 系统上都是由系统自动管控,新安装的 Linux 桌面发行版也会在安装时提醒用户设置,这坑爹的阿里云在安装的时候没给我分配 Swap 分区?
吐槽归吐槽,问题还是要自己解决。网上各种 swap 分区的设置教程大部分都比较模糊,代码的参数及命令都没有解释清楚,给人一种看不懂的感觉~对于操作磁盘这种敏感操作,还是要尽量避免在半懂不懂的情况下进行这种高危操作,毕竟数据无价嘛。最后找到了一篇靠谱的教程,并在服务器端和树莓派端进行实践。
参考_[https://linux.cn/article-9238-1.html](https://linux.cn/article-9238-1.html)_
使用 fallocate 创建交换空间,我们首先在 / 目录下创建一个名为 swap_space 的文件。然后分配 4GB 到 swap_space 文件:
```
fallocate -l 4G /swap_space
```
我们运行下面命令来验证文件大小:
```
ls -lh /swap_space
```
然后更改文件权限,让 /swap_space 更安全:
```
chmod 600 /swap_space
```
这样只有 root 可以读写该文件了。我们再来格式化交换分区LCTT 译注:虽然这个 swap_space 是个文件,但是我们把它当成是分区来挂载):
```
mkswap /swap_space
```
然后启用交换空间:
```
swapon -s
```
每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑 /etc/fstab 并输入下面行:
```
/swap_space swap swap defaults 0 0
```
保存并退出文件。现在我们的交换分区会一直被挂载了。我们重启后可以在终端运行 ` free -m `来检查交换分区是否生效。
修改后 Swap 分区大小变为 4G编译终于可以跑起来了