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不就是了

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORA-12154: TNS: 无法解析指定的连接标识符

相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方…

Oracle的Net Configuration Assistant 配置

在进行团队开发的时候,一般团队的每一个人只需要安装一个客户端即可,没有必要安装一个Oracle 数据库服务器,而数据库服务器是属于共享的,此时,我们就需要配置客户端。客户端的配置可以有以下两种方式:第一种…

windows下hadoop的单机伪分布式部署(3)

下面介绍myeclipse与hadoop的集成。 我用的myeclipse版本是8.5. 1、安装hadoop开发插件 在hadoop1.2.1版本的安装包contrib/目录下,已经不再提供hadoop-eclipse-pligin-1.2.1.jar; 而是提供了源代码文件,需要我们自行重新编译成jar包文件;这里…

使用DBCA创建数据库

(1)选择“开始”—>“程序”—>Oracle-Oracle10g_home1—>配置和移植工具—>Database Configuration Assistant命令,启动DBCA,出现“欢迎使用”窗口,如图1:图1 (2)单击“…

linux-2.6.32.2内核在mini2440上的移植,Linux2.6.32.2移植到Mini2440

1.移植内核的准备工作(1)使用的环境操作系统:Fedora 10交叉编译工具使用:arm-linux-gcc-4.3.2(2)获取内核有很多方式可以获取 Linux 内核源代码,如果你的 Fedora10 平台可以上互联网,可以直接在命令行输入以下命令获取到最原汁原味的 Linux-2.6.32.2:#wg…

SliceProceduralMesh的使用

1. 构建一个actor,里面添加一个被切割的static mesh,比如一个立方体,再添加一个proceduralmesh。 然后在构造函数里面添加下面代码,将static mesh拷贝到proceduralmesh里。 另外将static mesh的hidden in game属性加上&#xff0c…

linux parallel 命令,Linux 并行处理神器 GNU Parallel 简明教程

Bash命令通常单线程运行,这意味着所有的处理工作只在单个 CPU 上执行。随着 CPU 规模的扩大以及核心数目的增加,这意味着只有一小部分的 CPU 资源用于处理任务,这样就造成了很大的资源浪费。 这种情况在进行多媒体转换(比如:图片和…

鼠标

1. 在UE4窗口中显示或隐藏鼠标2. 默认状态下,鼠标移动会转动摄像机,调用下面这个函数后,只有鼠标左键按下并移动才可以移动摄像机, 这样就可以对UMG这样的菜单进行控制

UMG

1. 2D UMG2. 3D UMG 新建一个Actor,添加一个widget组件进去,设置其widget class即可3. pawn和3D UMG的交互 在pawn里面加一个widgetinteraction组件,设置交互距离和形态,然后使用press pointer key就可以给3DUMG设置鼠标 点击事件…

免费开通二级域名的论坛

支持绑定域名 支持挂广告 后台管理 官网:http://www.howbbs.com/转载于:https://www.cnblogs.com/lieyan/p/3940463.html

UProceduralMeshComponent

使用UProceduralMeshComponent可以自由的用三角星来绘制三维图形 1. 在actor的构造函数中添加UProceduralMeshComponent组件 mesh CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("mesh")); Material LoadObject<UMaterial>(NULL, TEXT("…

[LeetCode] Search for a Range [34]

题目 Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithms runtime complexity must be in the order of O(log n). If the target is not found in the array, return [-1, -1]. For example, Given [5, 7, 7…

linux+qt+定时精度,Qt QTimer测试定时精度

调试信息输出窗口可以查看超时误差dialog.h文件#ifndef DIALOG_H#define DIALOG_H#include #include namespace Ui {class Dialog;}class QTimer;class Dialog : public QDialog{Q_OBJECTpublic:explicit Dialog(QWidget *parent 0);~Dialog();public slots:void slotOneSec()…

最简单的基于FFmpeg的AVDevice例子(屏幕录制)

最简单的基于FFmpeg的AVDevice例子文章列表&#xff1a;最简单的基于FFmpeg的AVDevice例子&#xff08;读取摄像头&#xff09;最简单的基于FFmpeg的AVDevice例子&#xff08;屏幕录制&#xff09;&#xfeff;&#xfeff;FFmpeg中有一个和多媒体设备交互的类库&#xff1a;Li…

linux 挂载32T文件系统,linux Centos下磁盘分区及文件系统创建与挂载(示例代码)

linux Centos下磁盘分区及文件系统创建与挂载MBR(Master Boot Record)是传统的分区机制&#xff0c;应用于绝大多数使用BIOS的PC设备。1.MBR支持32bit和64bit系统2.MBR支持分区数量有限3.MBR只支持不超过2T的硬盘&#xff0c;超过2T的硬盘只能使用2T空间(使用其他方法)1.主分区…

C语言的数组初始化

http://blog.csdn.net/sibylle/article/details/2026915 一直以为 int a[256]{0};是把a的所有元素初始化为0&#xff0c;int a[256]{1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事.5.2.1 数组初始化 数组可以用一个列值来初始化&#xff0c;例如 …

【Modern OpenGL】第一个三角形

>说明&#xff1a;跟着learnopengl的内容学习&#xff0c;不是纯翻译&#xff0c;只是自己整理记录。>强烈推荐原文&#xff0c;无论是内容还是排版。 [原文链接](http://learnopengl.com/#!Getting-started/OpenGL)本文地址&#xff1a;http://blog.csdn.net/aganlengzi…

UI Automation 简介

转载&#xff0c;源地址&#xff1a; http://blog.csdn.net/ffeiffei/article/details/6637418 MS UI Automation&#xff08;Microsoft User Interface Automation&#xff1a;UIA&#xff09;是随.net framework3.0一起发布的&#xff0c;虽然在如今这个几乎每天都有各种新名…

【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形

以前都是用Cg的&#xff0c;现在改用GLSL&#xff0c;又要重新学&#xff0c;不过两种语言很多都是相通的。下面的例子是实现绘制一个三角形的简单程序。采用了VBO&#xff08;veretx buffer object&#xff09;、VAO&#xff08;vertex array object&#xff09;等OpenGL的一些…

catia linux下载64位,CATIA V5 CATSysDemon.exe缓冲区溢出漏洞

发布日期&#xff1a;2014-02-24更新日期&#xff1a;2014-02-25受影响系统&#xff1a;3ds catia-v5描述&#xff1a;--------------------------------------------------------------------------------CATIA是数字产品定义及生命周期管理使用的CAD、CAE、CAM应用集成软件包…