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
    • 最新
    • 标签
主页 / server / 问题 / 132720
Accepted
fuenfundachtzig
fuenfundachtzig
Asked: 2010-04-16 06:11:36 +0800 CST2010-04-16 06:11:36 +0800 CST 2010-04-16 06:11:36 +0800 CST

将所有进程设置为 Linux 暂停的按钮?

  • 772

当 Linux 开始交换时,你基本上注定要失败。很快系统将不再对任何输入做出反应,但很高兴地切换到天结束......

你能想到一个包含所有进程的命令,因此(同时)允许你打开一个干净的 shell,你可以在其中检查问题的根源并杀死占用所有内存的进程?(我想这并不容易,因为由于内存可能已完全填满,您需要换出更多内存以收集空间以打开 shell,另一方面,必须停止所有其他交换过程。)

如果您将这样的命令绑定到热键,那么也许您可以将其用作紧急按钮,从而为您节省大量时间。如果这可能的话,有什么想法吗?以前有人尝试过这样的事情吗?如果有人能意识到这一点,那将是一个很酷的功能:)

linux process swapping
  • 5 5 个回答
  • 451 Views

5 个回答

  • Voted
  1. Best Answer
    Mark Porter
    2010-04-16T07:41:59+08:002010-04-16T07:41:59+08:00

    其他答案中提到的Magic SysReq确实是您所拥有的。如果您只有 SSH 访问权限,您可以像这样触发 SysReq:

    # Enable Magic SysReq since most systems default this off
    echo 1 > /proc/sys/kernel/sysrq
    #call OOM Killer to try to free up memory
    echo f > /proc/sysrq-trigger
    

    从中制作一个可执行脚本并在您注意到交换时立即执行它可能会给您一个机会。如果您有足够的内存来处理临时内存峰值,或者您可以在内存不足时终止随机程序,则禁用交换也是一种选择。

    在相关说明中,如果您的远程系统负载迅速增加并且您需要将其杀死,您可以使用它来强制重新启动而无需完全关闭:

    echo 1 > /proc/sys/kernel/sysrq
    #Trigger BIOS reset
    echo b > /proc/sysrq-trigger
    
    • 6
  2. dmckee --- ex-moderator kitten
    2010-04-16T06:50:35+08:002010-04-16T06:50:35+08:00

    一种(次优!)解决方案是提供更少的交换。

    这个想法是,大约在你绝望地举起双手的时候,OOM 杀手开始了。

    讨论

    我在有限内存机器上使用 linux 的经验表明

    用于交互使用

    • GUI 可以使用多达 100% 的 RAM
    • 使用 100% 到 150% 的 RAM 效果很好,但您可能会遇到一些命令行延迟
    • 使用 150 到 175--200% 的 RAM 速度很慢,但响应速度足以让您在命令行上进行交互并智能地杀死不必要的东西。
    • 除此之外,即使有耐心,手动修复它也几乎没有希望。

    一些特殊情况将允许您扩展这些限制。大型但很少活跃的后台进程将“坐”在内存上,但只是偶尔会变得活跃,因此它们不会对可用性问题产生很大影响。

    无论如何,计划是调整可用的交换,这样一旦机器太忙,你就不能合理地手动杀死东西,OOM 杀手就会介入。

    这不是最优的(尽管 OOM 杀手有多种启发式方法),很难确定它会选择“正确”。

    • 4
  3. minaev
    2010-04-16T06:50:14+08:002010-04-16T06:50:14+08:00

    Magic SysRq是我所知道的最接近您的按钮的东西......

    • 2
  4. Kyle Brandt
    2010-04-16T06:15:30+08:002010-04-16T06:15:30+08:00

    从来没有试过这个!,但也许:

    killall -SIGSTOP <main commands>
    

    看看man killall你可以如何根据需要定制它。通常,您可能希望使用 ulimit 运行进程以控制它们,并使用 Nagios 之类的东西监控内存使用情况(请参阅 gazillion 'What monitoring for ...' questions for alternatives)。

    • 1
  5. Dan Andreatta
    2010-04-17T03:06:40+08:002010-04-17T03:06:40+08:00

    你也可以尝试一下nice -20 bash,你应该得到一个响应式外壳......

    • 1

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve