线程常用的命令

1、总结系统限制有:

cat /proc/sys/kernel/pid_max  #(操作系统线程ID的最大值)系统支持的最大线程数

(sysctl kernel.pid_max)

    cat /proc/sys/kernel/thread-max  #表示内核所能使用的线程的最大数目

    cat max_user_process(ulimit -u) #系统限制某用户下最多可以运行多少进程或线程

    cat /proc/sys/vm/max_map_count  #单进程mmap的限制会影响单个进程可创建的线程数

    硬件内存大小

线程初识:

https://mccxj.github.io/blog/20171230_os-thread-limit.html

http://jzhihui.iteye.com/blog/1271122

https://github.com/0xAX/linux-insides/blob/master/Initialization/linux-initialization-10.md

https://www.cnblogs.com/bass6/p/7102524.html

 

2、Java虚拟机本身限制:

    -Xms  #intial java heap size

    -Xmx  #maximum java heap size

    -Xss  #the stack size for each thread

 

 

3、查询当前某程序的线程或进程数

pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l

pstree -p 3660 | wc -l

启动项目时会报 unable to create new native thread 就要注意线程问题了,如果有启动多个tomcat 要分开查询

 

 

4、查询当前整个系统已用的线程或进程数

pstree -p | wc -l

 

5、修改pid_max的值:

临时生效

[root@666 ok]# sysctl -w kernel.pid_max=60000

kernel.pid_max = 60000

[root@666 ok]# sysctl kernel.pid_max

kernel.pid_max = 60000

 

永久生效

[root@666 ok]# echo 'kernel.pid_max=99999' >>/etc/sysctl.conf

[root@666 ok]# sysctl -p

kernel.pid_max = 99999

 

其他查看线程的命令:

1、 cat /proc/${pid}/status

 

2、pstree -p ${pid}

 

3、top -p ${pid} 再按H  或者直接输入 top -bH -d 3 -p  ${pid}

 

top -H

手册中说:-H : Threads toggle

加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。

 

4、ps xH

手册中说:H Show threads as if they were processes

这样可以查看所有存在的线程。

 

5、ps -mp <PID>

手册中说:m Show threads after processes

这样可以查看一个进程后的线程数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值