二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

    • 记一次关于tomcat的踩坑的经历
    • 解决VNC连接闪退的问题
    • 一次升级线上服务器内核的经历
    • 记一次给笔记安装Windows系统遇到的一些坑
    • 解决一个新安装系统使用yum时报错的问题
    • 服务器存储不够了之直接挂载一块儿新磁盘的操作
    • 服务器存储不够了之在原逻辑卷上扩容的操作
    • 解决php-fpm启动之后没有9000端口的问题
    • 解决MySQL问题:Got error 28 from storage engine
    • 解决git clone报错Peer’s Certificate has expired的问题
    • Linux的普通用户bash突然报错bash fork retry No child processes的解决办法
    • 分析解决脚本执行时总是报出command not found
    • confluence数据目录满了
    • 利用prlimit动态修改应用进程的最大文件打开数
    • vim复制代码包含注释时格式会乱掉解决办法
    • python如何快速迁移依赖库
    • YUM安装提示--skip-broken-to-work-around-the-problem
    • 请求nginx返回413的错误
    • Linux系统环境变量被覆盖所有命令找不到怎么办
    • Centos7更改yum源为阿里云
    • node编译报错
    • git-commit错了如何更改
    • 关于执行journalctl时的一个报错
    • yum安装epel之后报错
    • umount卸载磁盘的时候提示busy
    • pip安装依赖时报ssl的问题
    • lavel框架缓存目录的问题
    • Debian系统中执行shell报错unexpected operator
    • Vuepress项目编译时报routines的错误
    • 一次因为Mac系统升级引发的ssh无法免密登陆的问题
  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • 迎刃而解
二丫讲梵
2018-12-05

Linux的普通用户bash突然报错bash fork retry No child processes的解决办法

文章发布较早,内容可能过时,阅读注意甄别。

在普通用户下,突然 bash 失灵,无论执行什么命令,都报如下问题:

bash: fork: retry: No child processes
1

上面这段错误提示的本质是 Linux 操作系统无法创建更多进程,导致出错。 因此要解决这个问题需要修改 Linux 允许创建更多的进程。

#并发连接数
echo -e  "root soft nofile 65535\nroot hard nofile 65535\n* soft nofile 65535\n* hard nofile 65535\n"  >> /etc/security/limits.conf
sed -i 's#4096#65535#g' /etc/security/limits.d/20-nproc.conf
1
2
3

一个是修改最大文件打开数,一个是最大进程数,这两个数可适当酌情调大。其中 root 表示管理员,* 表示普通用户。

image

如果如上优化已经进行过了,而服务器仍旧还会报上边那句话,那就有可能是僵尸进程的确把系统可用进程给耗完了。

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

这时,使用top命令能够看到系统中的僵尸进程数:

top - 08:21:10 up 286 days,  8:30,  1 user,  load average: 0.01, 0.05, 0.05
Tasks: 493 total,   1 running, 289 sleeping,   0 stopped, 27386 zombie
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3881904 total,   216408 free,  1170100 used,  2495396 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2366900 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  581 root      20   0  568400  23276   2768 S   0.3  0.6 131:13.99 containerd
11458 root      20   0  156012   2636   1524 R   0.3  0.1   0:00.20 top
18150 root      20   0  164564   9436   2044 S   0.3  0.2   0:44.44 barad_agent
18151 root      20   0  609312  12680   2364 S   0.3  0.3   4:20.32 barad_agent
21213 root      20   0  129540  14860   5508 S   0.3  0.4   3:43.59 athens-proxy
1
2
3
4
5
6
7
8
9
10
11
12

其中有一项信息是 27386 zombie,意味着系统中出现了将近三万个僵尸进程。

使用如下命令能够看到这些僵尸进程,以及它的父进程:

$ ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Z    21213   630 [git-remote-http] <defunct>
Z    21213   633 [git-remote-http] <defunct>
Z    21213   714 [git-remote-http] <defunct>
........
Z    21213   734 [git-remote-http] <defunct>
Z    21213   741 [git-remote-http] <defunct>
Z    21213   978 [git-remote-http] <defunct>
1
2
3
4
5
6
7
8
  • -A:参数列出所有进程
  • -o:自定义输出字段,我们设定显示字段为 stat(状态,ppid(父进程 pid,pid(进程 pid,cmd(命令行)这四个参数
  • 因为状态为 z 或者 Z 的进程为僵尸进程,所以我们使用 grep 抓取 stat 状态为 zZ 进程

可以看到后边都是僵尸进程,而前边 pid 为 21213 的进程则是这些僵尸进程的父进程。

我们可以先看下这个进程是什么服务:

$ ps aux |grep 21213 |grep -v grep
root     21213  0.3  0.4 129540 16880 ?        Ssl  Aug31   3:45 athens-proxy -config_file=/config/config.toml
1
2

原来是 Athens 这个代理服务,从官方 github 搜索相关 issue,早期版本中的确存在这个问题:issue (opens new window)

我们使用的正式 v0.3 这样的早期版本,目前的处理方式有两种,一种是直接升级代理的版本,但是据了解不同版本之间参数不一样,似乎升级起来并不轻松,另一种就是干掉这个父进程:

kill -HUP 21213
1

当我执行完如上命令之后,可以发现僵尸进程数变成了 0:

Tasks: 284 total,   1 running, 283 sleeping,   0 stopped,   0 zombie
1

然后系统也不会再报上边那个错误了。

微信 支付宝
上次更新: 2024/07/04, 22:40:37
解决git clone报错Peer’s Certificate has expired的问题
分析解决脚本执行时总是报出command not found

← 解决git clone报错Peer’s Certificate has expired的问题 分析解决脚本执行时总是报出command not found→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式