AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1142201
Accepted
Martin Drozdik
Martin Drozdik
Asked: 2019-05-11 10:44:17 +0800 CST2019-05-11 10:44:17 +0800 CST 2019-05-11 10:44:17 +0800 CST

当 OOM 没有颠簸时,Ubuntu 如何变得无响应?

  • 772

当我在 Ubuntu 18.10 上使用太多 RAM 时,GUI 会冻结。它停止对键盘和鼠标做出反应,除了硬重置计算机之外别无他法。

我相信这是因为系统已将 Gnome 二进制文件交换到磁盘,并且最终它们会被交换回来。但这从未在观察到的时间范围内发生(20 分钟左右)。

我试图通过禁用交换来解决问题(我更喜欢丢失未保存的工作而不是丢失未保存的工作并不得不重新启动PC)并指示OOM杀手根据this answer杀死任何触发OOM情况的进程。然而,这并没有帮助。我试图通过打开太多浏览器选项卡来使用大量内存,唯一发生的事情是系统再次变得无响应。

这怎么可能?除了抖动还有什么其他机制可以参与?(真正的工程问题,不是咆哮)

我在这个实验期间监控了系统统计数据,似乎 CPU 没有在 100% 负载下运行,所以这不是计算限制。此外,在我有机会打开足够多的选项卡来触发 OOM 杀手之前,GUI 似乎冻结了。

在此处输入图像描述

我能想出的最好的理论是,GUI 库正在使用某种内存分配器,通过使用一些替代交换机制或通过一些 CPU 密集型堆重新排列,即使内存非常少,它们也可以继续运行。否则我没有头绪。

这种行为有更好的解释吗?甚至是解决方案?

编辑

我的交换:

vm.swappiness = 60

我的记忆:

martin@martin-UX305UA:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        5.5G        145M        993M        2.1G        975M
Swap:          2.0G         57M        1.9G

我的/etc/fstab

UUID=e0edf45b-903c-403f-b2c7-5e69b8b450da /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=0564-1C88  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
swap kernel ram 18.10
  • 2 2 个回答
  • 1472 Views

2 个回答

  • Voted
  1. LVitya
    2020-06-05T09:47:27+08:002020-06-05T09:47:27+08:00

    值得尝试使用 OOM-killer 的一些改进版本。像earlyoom或nohang。他们的网站上描述了更多替代方案。

    这些用户空间应用程序的反应速度比常规内核 OOM-killer 快得多。

    github 上的 nohang 维护者非常积极地响应问题,以防您遇到任何问题。

    这个linux 播客提供了一些关于该主题的音频介绍。

    • 2
  2. Best Answer
    heynnema
    2019-05-14T06:59:35+08:002019-05-14T06:59:35+08:00

    注意:您确实需要添加更多 RAM,但我们会试试这个...

    每个系统都需要一个交换分区或 /swapfile。

    • 删除 OOM 调整

    • 将当前未使用的 2G /swapfile 更改为至少4G

    • 调整 vm.swappiness


    /交换文件

    注意:命令使用不当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 8G RAM and 4G swap
    reboot                    # reboot and verify operation
    

    确保此行位于 /etc/fstab ...

    /swapfile    none    swap    sw      0   0
    

    vm.swappiness

    在中terminal,尝试...

    sudo sysctl vm.swappiness# 查看原始值 (=60)

    sudo sysctl vm.swappiness=80# 更改 RAM 与交换比率

    使永久...

    设置vm.swappiness=80(基于8G RAM和4G SWAP),这样...

    sudo -H gedit /etc/sysctl.conf# 编辑这个文件

    搜索现有vm.swappiness=条目...

    CTRL+ fvm.swappiness

    • 如果找到,编辑它说vm.swappiness=80

    • 如果没有找到,在文件末尾添加 vm.swappiness=80

    保存您的编辑并退出 gedit

    sudo sysctl -p

    • 1

相关问题

  • 未连接到任何可见进程的令人讨厌的 CPU 峰值

  • 如果有空闲 RAM,如何清空交换?

  • 如何让我的电脑中的风扇在暂停时关闭?[关闭]

  • Ubuntu 是否支持与 SSD 一起使用的 TRIM 命令?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve