关于创建swap分区
Tofloor
poster avatar
pandora
deepin
2017-11-21 05:10
Author
请问在已装好的系统上如何把ext4的分区分出一部创建swap分区,安装时没分,现在感觉4G内存太吃紧了
Reply Favorite View the author
All Replies
avatar
159******54
deepin
2017-11-21 05:40
#1
这个百度搜一下很多的,我8个G都不够用, 开一个chrome动不动就3个G 然后idea也是3个G直接就满了,遇到好几次卡死, 然后开了8G的swap
Reply View the author
avatar
duanyao
deepin
2017-11-21 08:27
#2
本帖最后由 duanyao 于 2018-1-3 09:43 编辑

可以用 gparted 无损调整分区大小。但只是加 swap 的话,并不需要这么麻烦,可以用文件而不是分区做 swap 的。此外还可以用压缩内存来扩大有效内存容量。

使用机械硬盘的话,建议不要用硬盘 swap ,可以试试 zram ,即通过压缩内存的方式来扩大可用内存。
可以用这个GUI工具来配置 zram,很简便:https://bbs.deepin.org/post/133470
当然,如果使用中发现 zram 确实不够用,可以配置成 zram 和交换文件同时开启。
个人不推荐zswap,虽然它也是压缩内存,但还是需要硬盘 swap 作为后备。

还要注意的一点是,因为压缩内存速度很快,所以 vm.swappiness ( https://en.wikipedia.org/wiki/Swappiness )应该大一些,比如 100(默认只有10),不然压缩内存的效果体现不出来。可以修改 /etc/sysctl.conf,在里面加上一行
  vm.swappiness=100
再修改 /usr/lib/sysctl.d/deepin.conf ,把里面的 vm.swappiness=xx 注释掉或删掉。
然后运行下面的命令使其立即生效:
  sudo systemctl restart systemd-sysctl

我的内存是8G,配置了2G 的 zram,再加上 earlyoom ,这样内存不足造成的问题基本得到了解决。
不过,卡死的原因不限于内存不足,最近我还是遇到了2次原因不明的卡死,其中一次连 sysrq 大法也无反应。
Reply View the author
avatar
vincent_weng
deepin
2018-01-19 02:28
#3
https://bbs.deepin.org/post/148661
可以用 gparted 无损调整分区大小。但只是加 swap 的话,并不需要这么麻烦,可以用文件而不是分区做 swap  ...

有反馈解决么
Reply View the author
avatar
duanyao
deepin
2018-01-19 05:03
#4

后来没有重现过,所以没有反馈
Reply View the author
avatar
呆了个呆
deepin
2018-01-19 16:38
#5
如果分区不方便,也可以采用 swapfile 方式,只是性能可能会稍差一点
Reply View the author
avatar
呆了个呆
deepin
2018-01-19 16:42
#6
    1) 创建一个足够大的文件
    dd if=/dev/zero of=/localdisk/swapfile bs=1024 count=4096000
    (count的值等于1024 x 你想要的文件大小, 4096000是4G)

    2) 把这个文件变成swap文件.
    mkswap /localdisk/swapfile

    3) 启用这个swap文件
    swapon /localdisk/swapfile

    4) 在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行
    /localdisk/swapfile swap swap defaults 0 0
   
    5) 查看swap
    cat /proc/swaps
这个是使用文件格式swap的过程
Reply View the author