linux线程查看命令 linux系统查看线程命令-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

linux线程查看命令 linux系统查看线程命令

linux怎么查看线程cpu

可以用下面的命令将 cpu 占用率高的线程找出来:

成都创新互联是专业的城西网站建设公司,城西接单;提供成都网站设计、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行城西网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序。这样就可以找到占用处理器的线程了。

直接使用 ps Hh -eo pid,tid,pcpu | sort -nk3 |tail 获取对于的进程号和线程号,然后跳转到3.

查看哪个进程线程占用cpu过高; top / ps -aux, 获得进程号

确定哪个线程占用cpu过高,进入进程号的目录:/proc/pid/task,

执行:grep SleepAVG **/status | sort -k2,2 | head, 确定cpu占用较高的线程号。

使用kill -3 pid 会打印线程堆栈的情况

在 Linux 下 top 工具可以显示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.),可以显示每个 cpu 的利用率。但是无法显示每个线程的 cpu 利用率情况,这时就可能出现这种情况,总的 cpu 利用率中 user 或 system 很高,但是用进程的 cpu 占用率进行排序时,没有进程的 user 或 system 与之对应。

利用linux命令如何查进程中有多少线程

1。 使用top命令,具体用法是 top -H

加上这个选项,top的每一行就不是显示一个进程,而是一个线程。

2。 使用ps命令,具体用法是 ps -xH

这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。

3。 使用ps命令,具体用法是 ps -mq PID

这样可以看到指定的进程产生的线程数目。

更进一步,其实一些系统监控工具,在本质上也是读取的系统产生的文件罢了。比如说进程这个事情,

看看这个目录吧,/proc/5000/ 这里面有你所有想要的。其实stat代表着当前的一些信息。

使用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的那样)

+ 在前台进程组

Linux最大线程数限制及当前线程数查询

查看系统允许的最大线程数:

Linux无法直接控制单个进程可拥有的线程数,但有参考公式max = VM/stack_size,默认stack为8k,可通过降低stack大小或增加虚拟内存来调大每个进程可拥有的最大线程数;

对于支持多线程的程序如Java,有可能会遇到一个进程无法创建更多线程的情形,其原因多种多样,而OS端可能由此参数造成.

查看系统允许的最大进程数:

ulimit -a 显示当前所有的资源限制

root用户下执行 ulimit -a 然后查看 max user processes 这个值通常是系统最大线程数的一半:/proc/sys/kernel/threads-max/2

普通用户下 ulimit -u 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的

普通用户默认是1024

打开/etc/security/limits.conf (部分的系统是在/etc/security/limits.d/90-nproc.conf)

设置限制数量,第一列表示用户,* 表示所有用户

soft nproc :单个用户可用的最大进程数量(超过会警告);

hard nproc:单个用户可用的最大进程数量(超过会报错);

soft nofile :可打开的文件描述符的最大数(超过会警告);

hard nofile :可打开的文件描述符的最大数(超过会报错);

重启后生效

reboot

查询当前某程序的线程数

pstree -p 进程号 | wc -l

管道符号"|"左边命令的输出作为右边命令的输入

直接修改/etc/security/limits.conf 文件中的 * soft nproc 65535 值后,普通用户最大进程数无法达到65535 ,因为用户的max user processes的值,最后是受全局的kernel.pid_max的值限制。也就是说kernel.pid_max=1024 ,那么你用户的max user processes的值是127426 ,用户能打开的最大进程数还是1024。

永久修改系统最高进程数的方法

在/etc/sysctl.conf中添加kernel.pid_max = 65535

vim /etc/sysctl.conf

kernel.pid_max = 65535

或者:

echo "kernel.pid_max = 65535" /etc/sysctl.conf

然后重启机器。

临时修改的方法:

echo 65535 /proc/sys/kernel/pid_max

所以以上都操作完成后,才算是正确修改了max user processes 的值


当前名称:linux线程查看命令 linux系统查看线程命令
转载源于:http://kswsj.cn/article/dddcoig.html

其他资讯