我的电脑有 11GB RAM,Ubuntu 20.04,它运行速度非常慢,对于程序员的日常任务来说很卡。不到 10 个 Firefox 选项卡,1 或 2 个 IDE 窗口,Telegram。
我一直怀疑在关闭 Firefox 选项卡或 1 个 IDE 窗口(Pycharm)后,Ubuntu 不会释放 RAM。例如,我打开了 8 个 Firefox 选项卡和 1 个 Pycharm 窗口(只是打开而不运行任何脚本),然后我打开第 9 个选项卡,瞧,电脑变得卡顿,使用了超过 10GB 的 RAM。我立即尝试关闭尽可能多的选项卡,假设还剩下 4 个选项卡。但仍然使用了超过 10GB 的 RAM。
我想,也许再等一会儿,于是我去吃午饭,回来后,情况还是一样。然后我关闭了 Firefox,立即释放了 5GB 的 RAM。再次打开 Firefox 后,4 个标签页和 1 个 Pycharm 窗口现在只占用 6GB RAM。
这意味着所有关闭的标签页都不起作用,对吗?它不会释放关闭的标签页占用的 RAM 量。
答案1
首先,Linux 不会自动释放内存(参见https://www.linuxatemyram.com/)。它将打开的程序缓存到内存中,当打开新程序时释放内存。但是,当系统将内存交换到硬盘时,这种情况不会顺利发生,这本身就很慢。使用 ZRAM 代替传统的交换,它应该会再次变快。ZRAM 会压缩并将额外的内存存储在 RAM 本身中,而不会在(明显)较慢的硬盘中存储任何内容。
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh
之后,注释掉交换分区/交换文件的条目/etc/fstab
,并重新启动。