我的笔记本电脑有 4 GB 的 RAM,安装时我分配了 3 GB 的交换区域。那么这么多的交换区域对我的笔记本电脑有害吗?如果是,那么我该如何更改交换区域的大小。我应该分配多少交换区域?当我运行命令时
swapon --show
表明
NAME TYPE SIZE USED PRIO
/swapfile file 2G 59M -2
但这里只显示 2 GB,那么这是否意味着交换文件和交换空间不同?我不知道该怎么办。我是 Ubuntu 新手。请帮忙。
答案1
由于只有 4G RAM,我建议交换为 4G。
这样做可以扩大您当前的 2G 交换...
笔记:命令使用不当dd
可能导致数据丢失。建议复制/粘贴。
sudo swapoff -a # turn off swap
sudo rm -i /swapfile # remove old /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile # set proper file protections
sudo mkswap /swapfile # init /swapfile
sudo swapon /swapfile # turn on swap
free -h # confirm 4G RAM and 4G swap
reboot # reboot and verify operation
另外,执行sysctl vm.swappiness
,如果它返回“60”以外的任何内容,请告诉我,我会给您进一步的说明。
答案2
扩大交换空间:
sudo swapoff -a
删除位于根目录的现有交换文件
创建新的交换文件:
sudo fallocate -l XG /swapfile
其中 X 是交换文件大小(单位为 GB)(本例中为 4GB)
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
重启:
sudo reboot
启用休眠模式(可选):
- 编辑 /etc/default/grub 以将恢复位置和偏移量添加到 grub.cfg:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX resume_offset=XXXXX"
从 root 使用 UUID。
使用偏移量
sudo filefrag -v /swapfile
cscameron@cscameron-T:~$ filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 4819255296 (1176576 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 0: 303104.. 303104: 1: 1: 1.. 2047: 303105.. 305151: 2047: unwritten 2: 2048.. 4095: 311296.. 313343: 2048: 305152: unwritten
恢复偏移量=303104
更新 GRUB
sudo update-grub
测试休眠
sudo systemctl hibernate
使用 fallocate 创建交换文件时,可能会出现漏洞。可以搜索 /var/log/syslog
swapon: swapfile has holes
以确保不会丢失数据。
可以使用 gnome 扩展添加休眠按钮。