精华内容
下载资源
问答
  • linux线程总数
    千次阅读
    2021-05-14 13:22:49

    进程关联线程数统计说明

    Linux 系统下,可以通过以下三种方式查询应用程序(进程)创建了多少线程(thread)。

    通过 /proc/$PID/status 进行查看

    通过 /proc/$PID/task 目录下的目录数判断线程数量

    通过 ps 命令统计线程

    通过 /proc/$PID/status 进行查看

    首先,通过 ps 等指令,查询目标进程的进程 ID(PID):

    # 以 ssh 进程为例

    ps -ef | grep sshroot

    874     1  0 May31 ?        00:00:01 /usr/sbin/sshd -Droot

    3957   874  0 09:59 ?        00:00:00 sshd: root@pts/0root

    3993  3959  0 09:59 pts/0    00:00:00 grep —color=auto ssh

    # 第二列即为相应进程的 PID 号

    然后,通过如下指令,结合相应进程的 PID 查询其已创建线程数:

    格式:cat /proc/$PID/status

    示例:

    $ cat /proc/874/status | grep

    ThreadThreads:    1

    # 说明当前该进程创建的线程数为 1

    通过 /proc/$PID/task 目录下的目录数判断线程数量

    进程每创建一个线程,系统会在 /proc/$PID/task 目录下创建一个子目录,目录名即为线程 ID。通过统计相应进程对应 task目录下的子目录数量即可统计出线程数量。操作说明如下。

    首先,同样的,参阅前述说明,通过 ps 等指令,查询目标进程的进程 ID(PID)。

    然后,通过如下指令,结合相应进程的 PID 查询其已创建线程数:

    格式:

    ls /proc/$PID/task | wc -l

    示例:

    $ ls /proc/874/task | wc -l

    # 返回的数值即为相应进程创建的线程数。

    通过 ps 命令统计线程tgps

    通过 ps 指令也可以统计进程关联线程数。说明如下。

    首先,同样的,参阅前述说明,通过 ps 等指令,查询目标进程的进程 ID(PID)。

    然后,通过如下指令,结合相应进程的 PID 查询其已创建线程数:

    格式:

    ps hH p $PID | wc -l

    参数说明:

    -h 表示不显示标题

    -H 表示显示进程的层级关系

    $PID 是相应进程的进程号

    示例:

    $ ps hH p 874 | wc -l

    # 返回的数值即为相应进程创建的线程数。

    Linux 系统无法创建线程错误原因及解决方法

    问题描述:  业务软件或系统日志中可能出现类似如下日志信息:

    unable to create new native thread

    问题分析:  出现该错误,通常是由于系统无法创建更多进程所致。可以使用如下指令查看当前系统最大可创建线程数。

    指令:

    ulimit -a | grep

    示例输出:

    $ ulimit -a | grep

    processesmax user processes (-u) 7812# max user processes

    右侧的数值即表示当前单用户可创建的最大线程总数

    处理办法:  根据操作系统的不同,可以参阅

    该文档修改系统配置文件,调整最大可创建进程数。

    更多相关内容
  • linux中,使用top命令,智能查看线程的pid,但是不能查看到pid对应的程序的名称。(虽然使用htop可以看到,但是很多时候电脑上并没有htop) 使用top命令,如下: 今天通过研究发现了一个ps命令,可以将pid对应...

    在linux中,使用top命令,智能查看线程的pid,但是不能查看到pid对应的程序的名称。(虽然使用htop可以看到,但是很多时候电脑上并没有htop)
    使用top命令,如下:

     

    今天通过研究发现了一个ps命令,可以将pid对应的程序的名称显示出来:

    命令:ps -eLf    执行结果如下:(我实验过了,使用ps -elf也是可以的,不用专门记忆大小写了)

    然后就可以使用kill命令杀死某个程序了:

    例如杀死上面的153进程,直接用:  kill 153

    展开全文
  • top -H -p $PID #查看对应进程的那个线程占用CPU过高1、top -H手册中说:-H : ...2、ps xH手册中说:H Show threads as if they were processes这样可以查看所有存在的线程。3、ps -mp手册中说:m Show threads af...

    top -H -p $PID  #查看对应进程的那个线程占用CPU过高

    1、top -H

    手册中说:-H : Threads toggle

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

    2、ps xH

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

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

    3、ps -mp

    手册中说:m Show threads after processes

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

    查看进程

    top 命令

    top命令查看系统的资源状况

    load average表示在过去的一段时间内有多少个进程企图独占CPU

    zombie 进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。

    cpu states:

    nice:让出百分比irq:中断处理占用

    idle:空间占用百分比 iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI))

    Mem:内存情况

    设计思想:把资源省下来不用便是浪费,如添加内存后free值会不变,buff值会增大。 判断物理内存够不够,看交换分区的使用状态。

    交互命令:

    [Space]立即刷新显示

    [h]显示帮助屏幕

    [k] 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。 一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

    [n] 改变显示的进程数量。你会被提示输入数量。

    [u] 按用户排序。

    [M] 按内存用量排序。

    [o][O] 改变显示项目的顺序。

    [P] 根据CPU使用百分比大小进行排序。

    [T] 根据时间/累计时间进行排序。

    [Ctrl+L] 擦除并且重写屏幕。

    [q] 退出程序。

    [r] 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

    [S] 切换到累计模式。

    [s] 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

    缩写含义:

    PID每个进程的ID

    USER进程所有者的用户名

    PRI每个进程的优先级别

    NI每个优先级的值

    SIZE 进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB RSS 进程占用的物理内存的总数量,单位是KB

    SHARE进程使用共享内存的数量

    STAT 进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态

    %CPU进程自最近一次刷新以来所占用的CPU时间和总时间的百分比

    %MEM进程占用的物理内存占总内存的百分比

    TIME进程自启动以来所占用的总CPU时间

    CPU CPU标识

    COMMAND进程的命令名称

    ps命令

    ps查看当前用户的活动进程,如果加上参数可以显示更多的信息,如-a,显示所有用户的进程

    ps ax :tty值为“?”是守护进程,叫deamon 无终端,大多系统服务是此进程,内核态进程是看不到的

    ps axf :看进程树,以树形方式现实进程列表敲 ,init是1号进程,系统所有进程都是它派生的,杀不掉

    ps axm :会把线程列出来。在linux下进程和线程是统一的,是轻量级进程的两种方式。

    1

    2

    3

    4

    ps axu :显示进程的详细状态。

    vsz:说此进程一共占用了多大物理内存。

    rss:请求常驻内存多少

    查看线程

    其实linux没有线程,都是用进程模仿的

    ps -ef f

    用树形显示进程和线程,比如说我想找到proftp现在有多少个进程/线程,可以用

    $ ps -ef f | grep proftpd

    nobody 23117 1 0 Dec23 ? S 0:00 proftpd: (accepting connections)

    jack 23121 23117 0 Dec23 ? S 7:57 _ proftpd: jack - ftpsrv: IDLE

    jack 28944 23117 0 Dec23 ? S 4:56 _ proftpd: jack - ftpsrv: IDLE

    这样就可以看到proftpd这个进程下面挂了两个线程。

    在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。

    pstree -c也可以达到相同的效果

    $ pstree -c | grep proftpd

    |-proftpd-+-proftpd

    | `-proftpd

    cat /proc/${pid}/status

    可以查看大致的情况

    pstack

    有些系统可以用这个东东,可以查看所有线程的堆栈

    如何查看进程中各线程的内存占用情况?

    用ps aux只能查看到进程,如果进程里面使用了pthread编程,用什么命令才能查询到进程里的线程资源占用?

    ps aux | grep不就是了

    Linux 查看进程的线程数

    三种方法: 1. 使用top命令,具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程. 2. 使用ps命令,具体用法是 ps -xH 这样可以查看所有存在的线程,也 ...

    linux查看进程与线程数

    1. 查看进程:ps -ef 或 ps -aux 得到进程的pid:如: ps -ef | grep process_name | grep -v "grep" | awk '{p ...

    linux查看进程和线程的命令

    1.任务:获得进程信息 :ps命令,或者top命令,它能显示当前运行中进程的相关信息,包括进程的PID. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以使用top命令. 2.任务:获得 ...

    Linux查看进程线程个数

    1.根据进程号进行查询: # pstree -p 进程号 # top -Hp 进程号 2.根据进程名字进行查询: # pstree -p `ps -e | grep server | awk '{pr ...

    [转载]了解Linux的进程与线程

    本文转自Tim Yang的博客http://timyang.net/linux/linux-process/ .对于理解Linux的进程与线程非常有帮助.支持原创.尊重原创,分享知识! 上周碰到部署在 ...

    了解Linux的进程与线程

    了解Linux的进程与线程 http://timyang.net/linux/linux-process/ 上周碰到部署在真实服务器上某个应用CPU占用过高的问题,虽然经过tuning, 问题貌似已经 ...

    Linux 平台如何查看某个进程的线程数?

    Linux 平台如何查看某个进程的线程数?   三种方法:1. 使用top命令,具体用法是 top -H 加上这个选项,top的每一行就不是显示一个进程,而是一个线程. 2. 使用ps命令,具体用法是 ...

    Linux下查看进程和线程

    在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...

    (转)如何在Linux中统计一个进程的线程数

    如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...

    随机推荐

    Cache 工具类

    package com.thinkgem.jeesite.common.utils; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheM ...

    开源欣赏wordpress之用户新增user-new.php

    require_once( dirname( __FILE__ ) . '/admin.php' ); 引入根文件. if ( is_multisite() ) { if ( ! current_us ...

    BOM,Dom 回顾

    加给元素: offsetLeft(距离定位父级的距离)/offsetTop(距离定位父级的距离)/offsetWidth(可视宽度)/offHeight(可视高度) clientLeft(左边框宽度) ...

    min_25筛

    min_25筛 用来干啥? 考虑一个积性函数\(F(x)\),用来快速计算前缀和\[\sum_{i=1}^nF(i)\] 当然,这个积性函数要满足\(F(x),x\in Prime\)可以用多项式表示 ...

    hbase之认识

    进入HBase客户端命令操作界面    $ bin/hbase shell 查看帮助命令        hbase(main):001:0> help 查看当前数据库中有哪些表        h ...

    30-Python3 正则表达式

    30-Python3 正则表达式 ''' re.match函数 ''' import re print(re.match('www','www.runoob.com').span()) print(r ...

    Luffy之登录认证以及JWT

    1.用户认证 在前面我们已经完成了,前端登录页面的搭建,以及路由分配,现在我们作关于登录认证部分的东西 Django提供了认证系统.认证系统包含: 用户 权限:二元(是/否)标志指示一个用户是否可以做 ...

    JAVA国际化输出日期格式

    1.建议控制台程序 使用 IntelliJ IDEA  创建 MAVEN项目, 不选别的选项,则为控制台程序. (其它方式创建的控制台程序可能编译不过) 2.源码如下: import java.tim ...

    展开全文
  • Linux最大线程数限制及当前线程数查询1、总结系统限制有:/proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值/proc/sys/kernel/thread-maxmax_user_process(ulimit -u) #系统限制某用户下...

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

    1、总结系统限制有:

    /proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值

    /proc/sys/kernel/thread-max

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

    /proc/sys/vm/max_map_count

    硬件内存大小

    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

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

    pstree -p | wc -l

    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

    手册中说:m Show threads after processes

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

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • Linux 下查看线程信息

    2021-05-13 23:02:28
    1. 使用 pstree -p PIDps aux | grep firefox | grep -v grepcharles260580.0 0.0 4908 1152 ? S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /usr/lib/firefox-3.5.4/firefoxchar...
  • linux 查看线程

    2021-05-09 08:24:35
    linux下查看线程方法一、ps[root@iZtd8ajr022 ~]# ps -T -p 30557PID SPID TTY TIME CMD30557 30557 ? 00:00:00 nginx二、toptop -H -p 三、pstree【centos 7安装pstree 执行:yum install psmisc】[root@Docker ~]#...
  • Linux查看进程的线程信息

    千次阅读 2021-10-15 15:35:37
    Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进
  • Linux打印线程ID

    2021-05-14 01:34:27
    Linux下多线程程序发生coredump时,用gdb /path/to/program/file core可以看到所有线程root@rubic:~/test/thread# gdb a.out coreGNU gdb (GDB) 7.6.1Copyright © 2013 Free Software Foundation, Inc.License GPLv...
  • linux获取线程ID

    2021-05-14 10:38:11
    pthread_self()获取当选线程的ID。这个ID与pthread_create的第一个参数返回的相同。但是与ps命令看到的不同,因此只能用于程序内部,用于对线程进行操作。#include #include #include #include ...//获取当前线程I...
  • Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要...
  • [linux] linux线程详解

    千次阅读 2021-07-16 15:06:59
    线程入口函数的return返回,当前线程也进行了退出 2. 函数退出 函数一: void pthread_exit(void* retval); // 作用:谁调用谁退出 // 参数:线程在退出的时候返回的内容 函数二: int pthread_canael(pthread_t ...
  • 查看Linux的所有线程

    千次阅读 2020-06-24 14:55:37
    文章目录 https://www.cnblogs.com/MartinLwx/p/10628659.html...方法一:ps -T <pid>可以看指定pid的所有线程,SPID就是指线程。或者用ps -eLf 注意:嵌入式一个进程的直接使用 ps -T 方法二:top -H,和普通的t
  • Linux查看线程的方法

    2021-07-19 10:53:23
    2).ps -eLf | grep java(快照,带线程命令,e是显示全部进程,L是显示线程,f全格式输出) 3).pstree -p <pid>(显示进程树,不加pid显示所有) 4).top -Hp <pid>(实时) 5).ps -T -p <pid>(快照) ...
  • linux 查看进程和线程信息

    千次阅读 2021-06-11 10:34:06
    Linux系统的进程是由线程组成的,Linux的进程可以包含一个进程,也可以包含多个进程。 1. 查看进程信息 使用ps命令,查看系统设置的最大进程数 sysctl kernel.pid_max 使用ps命令,查看进程总数 ps -ef | wc ...
  • Linux系统如何查看进程的线程数导读:小编根据大家的需要整理了一份关于《Linux系统如何查看进程的线程数》的内容,具体内容:Linux系统的进程是由线程组成的,当然Linux进程下的线程数是不固定的,可以是一个进程,...
  • 在一个线程中调用pthread_create()创建新的线程后,当前线程从pthread_create()返回继续往下执行,而新的线程所执行的代码由我们传给pthread_create的函数指针start_routine决定。start_routine函数接收一个参数,是...
  • 查看Linux下某个进程里面线程数量

    千次阅读 2021-05-13 01:56:10
    查看Java的线程1、用ps -eLf | grep java | wc 查看系统里运行的java线程数2、用top H可以按线程排序CPU和内存的占用及相应的线程ID3、用killall -3 (unix only) 或 jstack -l 可以Dump出Java的线程,然后根据线程ID...
  • Linux最大线程数限制

    2021-05-15 06:29:13
    开始以为是内存不足导致无法创建线程,把jvm的-Xms,-Xmx的2个参数都加大一倍:-Xms2048m -Xmx2048m。把-Xss参数调小,还是启动失败。应该是系统方面的限制了,这台机器上搞了100个过tomcat进程,还有不少其他软件,...
  • linux线程卡死分析

    2021-09-15 20:16:09
    问题分析:通过ps查看当前线程状态,通过top查看当前线程资源使用情况 问题跟踪:通过strace -T -tt -e trace=all -p pid(通过ps查看到的线程Id)来跟踪线程卡在什么位置 问题解决:通过追踪到的代码卡的位置来反推...
  • 使用ps -ef可以查看所有的进程,而ps -efL可以查看所有的线程 例如查看python3.6的进程,其中 ps -ef |grep python3.6|grep -v grep 可以看到python3.6对应的进程有两个,其中一个进程的PID是1321 再通过ps -efL...
  • linux 查看线程数的方法

    万次阅读 2020-10-06 18:46:45
    ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰。在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树...
  • 通常我们通过ps aux | grep [pthread]查看特定进程[pthread]的状态信息;在Linux中,可能状态如下:D 不可中断 Uninterruptible sleep (usually IO)R 正在运行,或在队列中的进程S 处于休眠状态T 停止或被追踪Z 僵尸...
  • 环境变量和命令行参数、文件描述符、信号处理函数、当前目录、用户ID和 组ID等资源. 2).线程拥有自己独立的栈,因此也有自己独立的局部变量. 3).线程的系统开销小,任务切换快,相对于进程来说。 2.线程函数 1....
  • Linux线程详解

    万次阅读 多人点赞 2019-06-03 12:06:33
    在一个线程中调用pthread_create()创建新的线程后,当前线程从pthread_create()返回继续往下执行,而新的线程所执行的代码由我们传给pthread_create的函数指针start_routine决定。start_routine函数接收一个参数,是...
  • 虽然ZYNQ上面的ARM没有intel X86性能那么强悍,但完全可以在ARM上面跑多线程任务,前提是ZYNQ上要运行linux操作系统,这里给一个多线程的应用编写示例。 2、应用框架 这里在main函数里面调用thread_create()函数...
  • 1. prctl() (只能给当前线程设置名称) 2、pthread_setname_np 1. prctl() (只能给当前线程设置名称) #include <sys/prctl.h> iErr = prctl(PR_SET_NAME, “Hello_project”); 第一个参数是操作类型,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,876
精华内容 21,550
关键字:

linux ps当前线程