redhat – RH5中的“无法分叉:重试…”错误.需要有关nproc的信息

我们有一台服务器今天早上有效下降. SSH访问被切断,至少暂时网络访问也下降了.我们能够使用带外访问登录,并显示一个充满“Init:can not fork,retry ..”消息的屏幕.

当我们尝试登录时,当我们输入用户ID和密码错误时,我们得到了正常的“无效用户/通行证”错误.但是,如果我们输入正确的用户ID和密码,我们只会再次显示MOTD和登录屏幕.看起来系统不再能够启动任何新进程(成功登录应该启动一个shell,如果它不能,我猜它会在登录时让你失望?).

我在Red Hat的知识库(https://access.redhat.com/site/solutions/39497)中找到了对该问题的描述,但是关于错误的补充信息很少,只是一个建议的解决方案.

nproc到底做了什么?它是否是系统在任何时间点运行的进程数量的硬限制?超过nproc时是否会引起我们看到的影响?有没有办法将其设置为无限制?如果没有,我们怎么知道什么是安全或不安全的范围?

任何帮助或指导将非常感谢,因为它导致生产问题,现在是几个8层人员的板块:(

编辑:
也在/ var / log / messages中:

May 31 15:26:00 servername udevd[1637]: udev_event_run: fork of child failed: Resource temporarily unavailable
May 31 15:26:00 servername last message repeated 3 times
May 31 15:26:00 servername udevd-event[2461]: run_program: fork of '/lib/udev/udev_run_hotplugd' failed: Resource temporarily unavailable
May 31 15:26:00 servername udevd-event[2461]: run_program: fork of '/lib/udev/udev_run_devd' failed: Resource temporarily unavailable
May 31 15:26:00 servername udevd[1637]: udev_event_run: fork of child failed: Resource temporarily unavailable

解决方法

错误消息表示服务器超出了进程数的限制.有两个限制 – 硬和软. fork()时,从现有进程创建一个新进程.在这里,我们有一些不允许fork()的条件.

您在分配udev子进程时遇到问题.我想,这是在开机时发生的.看到这个

/ LIB / udev的/ udev_run_hotplugd

所以那里有一些热插拔设备.否则,我没有看到调用该库的原因.

现在有两个建议 –

1)如果您可以复制它,请尽可能使用它.获取失败的系统调用.这样容易多了.我不完全记得它是哪个系统调用.

2)在调试模式下运行udev.将udev_log = info更改为debug但首先测试它.它产生大量的日志,没有良好的环形缓冲区大小或巨大的宽监视器,错过了终端上显示的消息是相当普遍的.

但我已经看过很多这个问题了. Lemme告诉你,为什么不问红帽人你是否有订阅.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...