荣新教育:坚持面授的良心机构
全国咨询热线:400-1335-066
您现在的位置:首页>技术文章 > 正文

linux线程进程查看解析

时间:2018-04-10 13:43:31 来源:荣新IT教育培训 作者:荣新科技
荣新教育提示大家,最近气候变换,天干物燥,大家要多喝水,注意保暖。今天来给大家关于linux线程和进程的检查方法。
linux线程进程查看解析
在Linux中检查线程数的三种方法

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
这样能够检查一个进程起的线程数。

检查进程

1. 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进程的指令名称

2. ps指令

ps检查当时用户的活动进程,假如加上参数能够显现更多的信息,如-a,显现一切用户的进程


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

      ps axf :看进程树,以树形方法实际进程列表敲 ,init是1号进程,体系一切进程都是它派生的,杀不掉

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

  ps axu :显现进程的详细状况。

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

  rss:请求常驻内存多少

检查线程

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

1. 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下面如同由于没有真实的线程,是用进程模仿的,有一个是辅佐线程,所以真实程序开的线程应该只要一个。

2. pstree -c也能够到达相同的作用
$ pstree -c | grep proftpd
|-proftpd-+-proftpd
| `-proftpd

3. cat /proc/${pid}/status 
能够检查大致的状况

4.  pstack

有些体系能够用这个东东,能够检查一切线程的仓库

怎么检查进程中各线程的内存占用状况?

用ps aux只能检查到进程,假如进程里边运用了pthread编程,用什么指令才能查询到进程里的线程资源占用?
ps aux | grep不就是了

文章源自荣新教育官网:www.vfast.com.cn欢迎访问,转载需注明出处