哎,最近也是十分烦躁,没什么可以写的,尽量多写点东西吧。 虽然也有在每天看一点 Lua 什么的,不过完全不知道能用在哪里啊,所以先发到兔耳好了,等学得不错了再整理一下搬回来。

话说我论文做完,昨天切换回 Ubuntu 作为日常工作系统,更新了内核之后发现又没法休眠了。 于是我参考 Ubuntu 官方的这篇 How do I hibernate my computer? 配置了一下。 具体说来就是下面这样。

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
# 粘贴以下内容之后保存
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

根据上面这篇文章呢,休眠是否能正常工作,主要取决于你的 SWAP 分区与 RAM 的大小(If hibernate doesn’t work, check if your swap partition is at least as large as your available RAM.)。

这下就蛋疼了,我的 SWAP 分区只有 2GB ,但是 RAM 有 6GB 。 虽然我有在每次休眠前将大型程序关掉的觉悟,但是我的 SWAP 分区使用量总是莫名其妙地自己涨啊。 万一 SWAP 满了岂不是会有很不好的事情发生?

经过与@比尔盖子的一番交流,得知有 swappiness 这个参数可以调节 SWAP 的使用。 找到了 Ubuntu 问答的一篇 How do I configure swappiness?

根据问答,swappiness 是 Linux 内核提供的用于控制使用 SWAP 积极性的参数。 swappiness设置为 0 ,表示只在迫不得已(OOM 了)的情况下使用 SWAP 。 相对地,swappiness 设置为 100 表示几乎所有程序都会被即刻交换到 SWAP 分区上。 Ubuntu 将 swappiness 设置在了 60 ,意味着内存使用量大约到一半时, SWAP 使用就已经很频繁了。 要查看当前的 swappiness 设置,终端运行 cat /proc/sys/vm/swappiness 即可。

怎么调整这个参数呢,最简单的方法就是下面这个。

1
sudo sysctl vm.swappiness=5

调整到 5 的话,在你内存剩余不到 5% 的时候,系统才会开始使用 SWAP 。 你可能还想使用以下命令来清除 SWAP 内容。

1
2
sudo swapoff -a
sudo swapon -a

我觉得我要去看看什么微软中文规范啥的,中英混杂的时候开始分不清哪些地方要加空格了。