以 100% CPU 使用率初始化进程

Cri*_*tov 7 server 64-bit cpu-load init 11.10

我在 1GB/2GB(突发)的 QuadCore 处理器上的 OpenVZ VPS 帐户上有一台 Ubuntu x64 机器。几天前,我已成功将其更新到 11.10 Oneiric Ocelot。只有一个问题:我的“init”进程(PID = 1)处于 100% 的 CPU 使用率,在 99.5% 的时间内保持一个核心全速运行。

是否有任何解决方案可以阻止奇怪的 init 行为?我是否可以跟踪该 init 进程背后发生的事情,以找出是什么让它变得如此之高?

小智 7

来自Bellum PLC 论坛 - Ubuntu 11.10 init 100% cpu 使用错误

由于暴发户,我注意到 init 的 CPU 使用率问题,它不断消耗 99% 的内存。我决定找到工作修复。这是一个已被 Ubuntu 确认的错误,但下面是一个简单的快速修复补丁,它应该完全适用于所有人。

首先打开SSH并添加以下PPA
add-apt-repository ppa:jammy/upstart.fix-880049
Hit enter并再次输入。

如果它说找不到命令,请先发出此命令
apt-get install python-software-properties
然后
apt-get update && apt-get upgrade


Spa*_*apS 4

不幸的是,因为 upstart 大量使用 ptrace() 来实现其“预期分叉”功能,所以大多数时候使用 gdb 来 strace 或附加到它确实很困难(如果不是不可能的话)。

但是,您可以打开详细日志记录。

initctl log-priority info
Run Code Online (Sandbox Code Playgroud)

如果你想要更多东西

initctl log-priority debug
Run Code Online (Sandbox Code Playgroud)

这至少可以提供一些关于它正在做什么以耗尽所有这些 CPU 周期的线索。


yut*_*mmo -1

看起来这是 11.10 中的一个已知错误:

https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/880049

补丁已提交:

https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/880049/+attachment/2567049/+files/no_dev_console.patch

编辑:好的,该补丁似乎有效,但我对其进行了一些修改。

添加这个:

    if (system_setup_console (CONSOLE_NONE, (! restart)) < 0)
        nih_free (nih_error_get ());
Run Code Online (Sandbox Code Playgroud)

init/main.c之后:

    if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)
        nih_free (nih_error_get ());
Run Code Online (Sandbox Code Playgroud)

对我有用,只要 100% cpu 问题消失了,但开发人员说这不是一个正确的解决方案。