标签:linux linux线程数 linux进程 -bash: fork: retry
linux下查看线程数的方法及超过系统线程最大值的报错##查看线程数的方法
cat /proc/{pid}/status
其中Threads后面跟的就是线程数。
或者:
ls /proc/{pid}/task | wc -l
##举例如下
cat /proc/27587/status
Threads: 3
或:
ls /proc/27587/task |wc -l
3
##top命令后面跟-H,会打印出所有线程列表
top -H
top -H -p {pid}
##举例如下
top -H -p 27587
Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27587 siterec 20 0 1007m 79m 4772 S 1.7 0.2 203:34.71 python
2753 siterec 20 0 1007m 79m 4772 S 0.0 0.2 2:19.32 python
27590 siterec 20 0 1007m 79m 4772 S 0.0 0.2 0:00.00 python
##ps 后面加上H,能打印某个进程的所有线程
ps hH p {pid} | wc -l
##举例如下
PID TTY STAT TIME COMMAND
17721 pts/1 Sl 0:00 /usr/java/jdk1.8.0_60/bin/java -Djava.util.logging.config.file=/mnt/deploy/apache-tomcat-8.0.35/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoader
17721 pts/1 Sl 0:00 /usr/java/jdk1.8.0_60/bin/java -Djava.util.logging.config.file=/mnt/deploy/apache-tomcat-8.0.35/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoader
17721 pts/1 Sl 0:00 /usr/java/jdk1.8.0_60/bin/java -Djava.util.logging.config.file=/mnt/deploy/apache-tomcat-8.0.35/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoader
使用ps命令来查看进程的时候,进程状态分别对应的含义如下:
D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R 正在运行或可运行(在运行队列排队中)
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W 正在换页(2.6.内核之前有效)
X 死进程 (未开启)
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
< 高优先级(not nice to other users)
N 低优先级(nice to other users)
L 页面锁定在内存(实时和定制的IO)
s 一个信息头
l 多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)
+ 在前台进程组
##打印所有进程及其线程
pstree -p
##打印某个进程的线程数
pstree -p {pid} | wc -l
##报错信息:
-bash: fork: retry: 没有子进程
-bash: fork: retry: 资源暂时不可用
##解决方法:
cat /etc/security/limits.d/20-nproc.conf
或:
cat /etc/security/limits.d/90-nproc.conf
\* soft nproc 1024 // 将此处修改成unlimited或者其他数值
root soft nproc unlimited
标签:linux linux线程数 linux进程 -bash: fork: retry
原文地址:http://blog.51cto.com/wutengfei/2096943