【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理

bash:fork:Cannot allocate memory 问题的处理

https://zhanglianghhh.github.io/2019/08/30/linux-thread


fork Cannot allocate memory

https://developer.aliyun.com/article/762291

https://stackoverflow.com/questions/43652021/bash-fork-cannot-allocate-memory


基本命令都显示无法分配内存错误。 

经排查,发现系统正在使用所有内存进行缓存,并且没有释放内存。

 这称为“缓存膨胀”,通过清除缓存来解决。


【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理_第1张图片


就我的案例而言,操作系统是用尽了PID而不是内存。

在我的场景中,根本原因是一个Java进程产生了18k +个线程(在Linux内核中,线程本质上是一个进程)。


LWP -- 轻量级进程,即线程

NLWP -- 线程数,即 number of threads in process


【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理_第2张图片

#  ps -eo nlwp,pcpu,user,pid,ppid,args  --sort nlwp  

注:以 nlwp排序,默认正序

# man ps 

【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理_第3张图片


Running any command returns “Cannot allocate memory” on Ubuntu Server

https://askubuntu.com/questions/845233/running-any-command-returns-cannot-allocate-memory-on-ubuntu-server


How does the OOM killer decide which process to kill first?

https://unix.stackexchange.com/questions/153585/how-does-the-oom-killer-decide-which-process-to-kill-first/153586#153586


最全Linux ps命令详解

https://www.sohu.com/a/306726762_262549


【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理_第4张图片
【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理_第5张图片



如何查看某进程下运行的线程

https://my.oschina.net/moooofly/blog/160160


一个类似top查看每个人使用进程数的命令

https://www.yuque.com/leoatchina/blog/iw0sc4


Linux中查看进程的多线程

http://smilejay.com/2012/06/linux_view_threads

你可能感兴趣的:(【进程&线程】关于bash: fork: Cannot allocate memory 问题的处理)