小编myk*_*myk的帖子

cgroup fork 被 pids 控制器拒绝

有一个用 C/C++ 编写的小型服务器程序,使用 nginx 和 Postgres,目前都托管在同一个 ubuntu 系统上。我通常从 bash 命令行运行服务器程序。

\n

最近在较新版本的 Ubuntu 上,当服务器程序运行时,大约半分钟后我无法执行任何其他命令;如果屏幕保存,则我无法重新登录。终止我的服务器程序将恢复正常行为。

\n

在 bash 中:按 ENTER 键输入任意命令:

\n
bash: fork: retry: Resource temporarily unavailable\n
Run Code Online (Sandbox Code Playgroud)\n

并将以下内容写入 /var/log/syslog:

\n
Sep  5 09:46:08 ubuntu kernel: [  145.614883] cgroup: fork rejected by pids controller in /user.slice/user-1000.slice/user@1000.service\n
Run Code Online (Sandbox Code Playgroud)\n

系统重新启动后启动服务器程序与系统运行一段时间后启动服务器程序的体验是不同的。具体来说,重新启动后,服务器程序将正常运行。如果服务器程序重新启动,它将以 60% 的利用率运行半分钟,然后跳至 80% 约 5 秒,然后降至 20% 的利用率。看起来好像有什么东西直接限制了应用程序。C组?

\n

PAM 配置: \n在 /etc/pam.d/common-session 中有以下行:

\n
session required    pam_unix.so \nsession optional    pam_systemd.so \n
Run Code Online (Sandbox Code Playgroud)\n

我不认为这有什么区别,但在 /etc/security/limits.d/91-nofile.conf 中我设置了以下 PAM 设置:

\n
*                soft    nofile …
Run Code Online (Sandbox Code Playgroud)

pam cgroup systemd ubuntu-20.04

5
推荐指数
1
解决办法
6073
查看次数

标签 统计

cgroup ×1

pam ×1

systemd ×1

ubuntu-20.04 ×1