【进程&线程】关于bash: fork: Cannot allo

2020-11-15  本文已影响0人  Bogon

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

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

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

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

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

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

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

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

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

注:以 nlwp排序,默认正序

# man ps 

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

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

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

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

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

Linux中查看进程的多线程

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

上一篇下一篇

猜你喜欢

热点阅读