当达到 RAM 限制时系统会冻结,不使用交换

当达到 RAM 限制时系统会冻结,不使用交换

我有一个 16GB RAM 的系统,每当我达到 RAM 的极限时,整个系统就会冻结,甚至鼠标光标也会开始抖动,直到完全不动。键盘、鼠标,什么都没有。所以我被迫进行强制关机,这可能对电子设备不利。我设置了一个 16GB 的交换区,它在每次free -m进入时都显示正常top,但使用率始终为 0。

              total        used        free      shared  buff/cache   available
Mem:          15960        5823        3915         704        6220        9104
Swap:         16383           0       16383

有什么想法为什么我的系统不想使用交换来避免彻底崩溃?

更多信息:

$ grep -i swap /etc/fstab
/swapfile                                 none            swap    sw              0       0

$ sysctl vm.swappiness
vm.swappiness = 80

$ swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            16777212        0       -2

$ ls -al /swapfile
-rw------- 1 root root 17179869184 Jan 16  2021 /swapfile

输出sudo lshw -C memoryhttps://pastebin.com/TGbjiLdm

我曾尝试过将交换量从 10 变为 40 变为 60 变为 80,但似乎没有什么太大的区别。

此外,系统很少达到极限。只有当我使用 Kdenlive 编辑非常大的视频文件或运行 VirtualBox 等类似的东西时才会达到极限。我通常对此很谨慎,但有时我会意外达到 16GB 的阈值(未使用交换空间),然后我的系统就会崩溃。

答案1

交换

编辑/etc/fstab...

sudo -H gedit /etc/fstab

并编辑此行以删除制表符,并仅使用空格......

/swapfile                                 none            swap    sw              0       0

减少你的/swapfile...它太大了......

笔记:错误使用rmdd命令可能会导致数据丢失。建议复制/粘贴。

在里面terminal...

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 16G RAM and 4G swap

sudo -H gedit /etc/fstab使用或编辑 /etc/fstab sudo pico /etc/fstab

确认 /etc/fstab 中的此 /swapfile 行...并确认没有其他“交换”行...在此行中使用空格...确认没有制表符...

/swapfile  none  swap  sw  0  0

reboot                    # reboot and verify operation

重置你的 vm.swappiness...

编辑/etc/sysctl.conf...

sudo -H gedit /etc/sysctl.conf

找到包含的行vm.swappiness=80并将其更改为 =60。

保存文件。

sudo sysctl -p

BIOS

ThinkPenguin 小军鼓https://www.thinkpenguin.com/gnu-linux/snares-penguin-gnu-linux-notebook

您的 BIOS 版本非常老旧,为 1.03.06,发布日期为 2014 年 6 月 25 日。告诉我您的计算机或主板的具体品牌/型号,我们将检查是否有更新的 BIOS。

更新#1:

让我们检查您的文件系统...

  • 以“试用 Ubuntu”模式启动 Ubuntu Live DVD/USB
  • terminalCtrl+ Alt+打开窗口T
  • 类型sudo fdisk -l
  • 识别“Linux 文件系统”的 /dev/sdXX 设备名称
  • 输入sudo fsck -f /dev/sdXX,替换sdXX为您之前找到的数字
  • fsck如果有错误则重复命令
  • 类型reboot

更新 #2:

命令期间初始失败dd。登录屏幕冻结。fsck修复了一些错误。交换现已正常工作。BIOS 似乎比较旧,但还是最新的。启动到 Ubuntu Live DVD/USB 时运行正常。需要重新安装 Ubuntu。

相关内容