相关疑难解决方法(0)

使用 /var/log/messages 调试内存不足

我的消息日志中抛出了以下报告:

kernel: Out of memory: Kill process 9163 (mysqld) score 511 or sacrifice child
kernel: Killed process 9163, UID 27, (mysqld) total-vm:2457368kB, anon-rss:816780kB, file-rss:4kB
Run Code Online (Sandbox Code Playgroud)

如果这个问题是针对 的并不重要httpdmysqld或者postfix我很好奇如何继续调试问题。

我怎样才能获得更多关于为什么 PID 9163 被杀死的信息,我不确定 linux 是否在某处保留终止的 PID 的历史记录。

如果您的消息日志文件中出现这种情况,您将如何逐步解决此问题?

# free -m

             total       used       free     shared    buffers     cached
Mem:          1655        934        721          0         10         52
-/+ buffers/cache:        871        784
Swap:          109          6        103`
Run Code Online (Sandbox Code Playgroud)

linux logs memory out-of-memory

50
推荐指数
2
解决办法
11万
查看次数

vm.swappiness 参数真正控制什么?

根据内核文档:

This control is used to define how aggressive the kernel will swap
memory pages.  Higher values will increase aggressiveness, lower values
decrease the amount of swap.
Run Code Online (Sandbox Code Playgroud)

然而,这有点模糊。我试图弄清楚参数最终控制什么。我知道它会调整内核尝试换出页面的积极程度,但它会影响内核代码中的哪些决策过程?

它是否会在内核将其换出之前调整页面必须在多长时间前被访问?如果是这样,默认值 60 代表什么?增加/减少 1 会改变多少(公式会很好)?
或者它是否根据访问频率换出页面?
或者是其他东西?

linux kernel memory swap

37
推荐指数
3
解决办法
1万
查看次数

如何阻止 Fork Bomb 内存不足错误 - RHEL 6

我设置了 test VM 来测试 fork 炸弹的效果。所以我limits.confroot用户编辑了以下内容:

root    hard         nproc  512
Run Code Online (Sandbox Code Playgroud)

现在我像这样放下一个叉子炸弹:

:(){ :|:& };:
Run Code Online (Sandbox Code Playgroud)

在此之后,一段时间后(我相信达到 512 限制需要),出现以下错误: 例子

这继续没有停止。有没有办法在不重新启动机器的情况下停止这个?

linux shell bash rhel fork

7
推荐指数
1
解决办法
1万
查看次数

安全执行“分叉炸弹”

我们都见过“分叉炸弹”,它会使主机无响应,即使在非特权 shell 中执行:

警告:不要执行以下 shell 脚本。只是不要。

:(){ :|:& };:
Run Code Online (Sandbox Code Playgroud)

我也知道cgroups,Linux 内核级进程分组结构,可以分配“控制器”来限制内存、CPU 消耗、I/O 调度优先级等。

从理论上讲,应该可以使用这种控制机制来允许用户在他们自己的 shell 中执行一个 fork 炸弹,而不会导致主机系统陷入困境。

由于我并不真正了解分叉炸弹如何消耗资源,因此我不确定如何使用 cgroups 来执行此操作。

linux shell cgroups

6
推荐指数
1
解决办法
1677
查看次数

标签 统计

linux ×4

memory ×2

shell ×2

bash ×1

cgroups ×1

fork ×1

kernel ×1

logs ×1

out-of-memory ×1

rhel ×1

swap ×1