1。前言本文主要介绍如何使用Linux命令查看进程状态和信息。进程标识符(PID)是Linux/Unix内核(Windows操作系统也不例外)用来标识进程的数字编号。一般来说,创建一个新进程使用forksystemcall系统调用。Linux下可以监控每一个PID(通常称为任务)。在本教程中,我将解释如何使用pidstat命令监控当前由Linux内核管理的各种任务。2.`pidstat`命令介绍pidstat命令也可以用来监控选中任务的子进程。该命令有以下功能:查看指定进程的状态信息查看指定进程的磁盘状态信息,Apache/Nginx/Lighttpd/O信息及其子进程进程状态信息查看线程相关任务统计查看CPU统计报告每个活动任务。查看特定进程的页面错误和内存利用率识别特定进程的内存泄漏。More3.安装`pidstat`要使用pidstat命令,必须先安装pidstat命令[root@zcwyou~]#yum-yinstallpidstat加载插件:fastestmirror从缓存主机文件库加载镜像速度:mirrors.aliyun.comepel:mirror01。idc.hinet.net额外:mirrors.aliyun.com更新:mirrors.aliyun.com没有可用的包pidstat。错误:无操作表示在存储库中找不到该包。使用yum提供查找pidstat命令依赖的包[root@zcwyou~]#yumprovidespidstat已加载插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfilebase:mirrors.aliyun.comepel:mirror01.idc.hinet.netextras:镜像.aliyun.com更新:mirrors.aliyun.comepel/x86_64/filelists_db|11MB00:00:01extras/7/x86_64/filelists_db|246kB00:00:00更新/7/x86_64/filelists_db|4.6MB00:00:00sysstat-10.1.5-17.el7.x86_64:Linux性能监控工具合集来源:base匹配来源:文件名:/usr/bin/pidstat找到pidstat命令对应的包名sysstat[root@zcwyou~]#yum-yinstallsysstatRunningtransactionInstalling:lm_sensors-libs-3.4.0-6.20160601gitf9185e5.el7.x86_641/2Installing:sysstat-10.1.5-17.el7.x86_642/2Verifying:lm_sensors-libs-3.4.0-6.20160601gitf9185e5.el7.x86_641/2验证:sysstat-10.1.5-17.el7.x86_642/2已安装:sysstat.x86_640:10.1.5-17.el7安装为依赖项:lm_sensors-libs.x86_640:3.4.0-6.20160601gitf9185e5.el7完成!表示已经安装成功4.`pidstat`命令语法pidstat使用语法[root@zcwyou~]#pidstatoptionsintervalcount是pidstat选项间隔号。尝试执行以下命令:[root@zcwyou~]#pidstat输出结果如下:Linux3.10.0-957.12.2.el7.x86_64(CentOS7.linuxrumen.com)July09,2019x86_64(2CPU)08:13:30UIDPID%usr%system%guest%CPUCPU命令08:13:30010.040.680.000.721systemd08:13:30020.000.000.000.001kthreadd08:13分钟30秒030.000.040.000.040ksoftirqd/008:13:30070.000.010.000.010迁移/008:13:30090.000.240.000.241rcu_sched08:0013:300.00.000.00:13迁移/11:400.000.020.000.021ksoftirqd/108:13:300180.000.000.000.0000.000kdevtmpfs08:13:300300300.000.000.01ker0.108:13:300370.000.000.000.000.000.000.000.000.000.000470.000.060.000.061kworker/u256:108:13:300500.000.150.000.115:1kworker/u256分30秒0520.000.150.000.150kworkerstat/0:2查看进程状态使用pid5、使用`pidstat`查看任意进程的I/O状态语法:只有内核2.6.20以上版本支持pidstat-d-p进程号pidstat-d-p进程号210pidstat-d-p进程号150查看某个进程的pid状态,6963是进程号[root@zcwyou~]#pidstat-d-p6963Linux3.10.0-957.12.2.el7.x86_64(CentOS7.linuxrumen.com)July09,2019x86_64(2CPU)08:2126秒UIDPIDkB_rd/skB_wr/skB_ccwr/s命令08:21:26069631.910.000.00sshd输出解释:PID-被监控任务的进程ID。kB_rd/s-每秒从磁盘读取的任务生成的字节数,以KByte为单位。kB_wr/s–任务每秒写入磁盘的字节数,以KByte为单位。kB_ccwr/s–写入磁盘的任务取消的千字节数。当任务截断一些脏页面缓存时,可能会发生这种情况。在这种情况下,将有一些IO已考虑到另一个任务。命令——进程执行的命令。6.找出top5pagefault的进程统计以下命令会每隔两秒显示系统中所有任务的子进程的5个pagefault统计报告:[root@zcwyou~]#pidstat-TCHILD-r25Linux3.10.0-957.12.2.el7.x86_64(CentOS7.linuxrumen.com)2019-07-09x86_64(2个CPU)08:26:48UIDPIDminflt-nrmajflt-nrCommand08:26:50075752280pidstat08:26:50UIDPIDminflt-nrmajflt-nrCommand08:26:52075752330pidstat找出前5个pagefault进程统计输出结果说明:PID-进程号.minflt-nr-总数任务及其子任务引起的小错误的数量,并在此间隔内收集。majflt-nr–任务及其所有子任务引起的主要错误的总数,并在时间间隔内收集。7.执行以下命令查看CPU利用率:[root@zcwyou~]#pidstat-TCHILD-u22Linux3.10.0-957.12.2.el7.x86_64(CentOS7.linuxrumen.com)July9,2019Datex86_64(2CPUs)08:30:28UIDPIDusr-mssystem-msguest-ms命令08:30:30069311000调整08:30:30075830200pidstat08:30:30秒UIDPIDusr-mssystem-msguest-msCommand08:30:320500100kworker/1:108:30:320758310100pidstat平均时间:UIDPIDusr-mssystem-msguest-ms命令平均时间:050050kworker/1:1平均时间:06931500调整平均时间:075835150pidstat输出解释:报告任务及其所有子任务的全局统计信息时,显示以下值:usr-ms:任务及其所有子任务在用户级别(应用程序)执行时所花费的总毫秒数,有或没有优先级,并按时间间隔收集请注意,此字段不包括运行虚拟处理器所花费的时间。system-ms:在系统级别(内核)执行时,任务及其所有子任务在该时间间隔内收集的总毫秒数guest-ms:任务及其所有子任务在虚拟机(运行虚拟处理器)中花费的时间总毫秒数。
