您的位置:首页 > 运维架构 > Linux

Linux之进程管理(2)相关命令之二

2016-09-11 17:12 459 查看
Linux之进程管理(2)相关命令之二进程监控工具命令使用:uptime top vmstat pmap dstat
uptime 命令
uptime - Tell how long the system has been running.
显示当前已经运行的时长及cpu核心处理状态
说明:显示系统当前时间,系统运行时长,以及当前上线人数,系统平均负载(一般按1、5、10分钟的平均负载,一般不会超过1)。
选项及用法:
uptime [option]
-p, --pretty : 只显示系统运行时长,以人性化显示
-s, --since : 系统启动时间,yyyy-mm-dd HH:MM:SS格式注:只有uptime命令版本为3.3.10及支持以上选项,可以使用uptime -V查看当前命令版本。
案例1:
[root@localhost ~]# uptime
15:38:42 up 1:12, 1 user, load average: 0.00, 0.01, 0.05
解析:这里显示当天的15:38:42开启系统,到目前已经运行了1个小时12分钟。同有一个用户登录。load average表示为平均负载的活动进程数。
注:系统平均负载:
在特定时间间隔内运行队列中的平均进程数,默认为1、5、10分钟之间。生产环境中的例子:
1、如果每个CPU内存的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务大于5,那么说此机器的性能有严重问题。
2、如果linux主机是1个双核CPU的话,当Load Average为6的时候说明机器已经被充分使用了。
案例2:
#以人性化友好格式只显示系统启动时间
[root@localhost ~]# uptime -p
up 1 hour, 33 minutes
#只显示系统的运行时长
[root@localhost ~]# uptime -s
2016-09-09 14:26:01
#其实uptime显示的就是w命令输出的头部
[root@mzf ~]# w
16:14:55 up 18:39,  2 users,  load average: 0.00, 0.02, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.1.250.34      05:25    3:51m  0.58s  0.58s -bash
root     pts/1    10.1.250.34      09:40    0.00s  0.20s  0.00s w
解析:这里w显示的头部信息同样和uptime显示的数据一样,都是显示系统运行时间等。

top 命令
直接输入top命令进入界面,展示信息详解:
[root@mzf ~]# top



头部信息解析(前几行关于系统及进程总体数据):
第一行:看到第一行应该熟悉了,同uptime命令输出的系统时长平均负载的等信息。
第二行:显示当前进程的总量和个别程在什么状态(runing, sleeping, stoped, zombie)。
注意:总共有340个进程,一般情况下running 都是显示1,cpu同一时间段只处理一个进程。而zombie为0说明进程运作目前正常,如果不会1就要检查是哪个进程处于僵死状态,并对其进行清除。
第三行:当前 CPU的整体负载,如果是多核心的cpu,可以按数字1来切换成不同CPU的负载率。
例子(1):运行在单核心Cpu上,此时按1,Cpu(s)变成了Cpu0:



解析:之前此处显示为Cpu(s),现在只显示了Cpu0,表示只要一个核心。
例子(2):运行在双核心Cpu上,按1,会显示多个核心的Cpu数据:



解析:这里显示了两个Cpu条目,表示为双核心,显示其中各自的运行比例。

Cpu后面的每个字段说明:
us:user space 用户运行程序占用CPU的百分比;sy:system(kernel space)用于运行内核占用的CPU百分比;ni:nice用户进程空间所改变过优先级的过程占用CPU的百分比;id:idle空闲CPU百分比;wa:wait io 等待I/O花费时间;hi:hard ware interrupt 硬件中断占用CPU的百分比;si:software interrupt 软链接中断占用的CPU百分比;st:stolen,被虚拟机“偷走”的百分比;第四行:表示物理内存的使用情况
第五行:表示交换分区的使用情况
第六行:这里默认显示空白,当在top程序当中输入命令时,显示结果状态的地方,这里可以输入的命令有:
按条件排序显示
P:根据CPU使用百分比大小进行排序M:根据CPU使用百分比进行排序T:根据累计时间进行排序 显示和隐藏指定条目:l:是否显示平均负载和启动时间t:是否显示CPU状态相关信息m:是否显示内存(mem)相关信息c:是否显示完整的命令行(command)信息操作命令:q:退出topk:终止某个进程
进程栏位信息列表信息:


PID:(Process Id)进程的IDPPID:(Parent Process Pid)父进程IDRUSER:(Real User Name)进程的所有者真是名称UID:(User Name)进程所有者名称GROUP:(User Name)任务所属组名称TTY:(Controlling Tty)当前在哪个终端上运行PR :(Priority)优先级%CPU:(CPU usage):CPU使用率%MEM:(Memory usage (RES))内存使用率S:(Process Status):进程状态TIME+:(CPU Time, Hundredths):CPU时间,精确到秒
使用特定选项让进程信息输出到终端控制台:
top 命令选项:
top [options]
-d #:指定延迟时长,单位为妙-b:batch批处理模式显示-n #:显示的比例次数

vmstat 命令
vmstat - Report virtual memory statistics报告信息流程、内存、分页块IO、陷阱、磁盘和cpu活动。 命令使用及选项:vmstat [options ] [delay [count]]delay - 更新系统报告的延迟期限,单位为秒count - 总共进行几次更新打印,默认不指定为无限循环更新打印-s - 直接显示统计数据列表
案例介绍:
#直接输入vmstat显示实时信息
[root@localhost ~]# vmstat



重要信息格式解析:
procs: r:等待运行的进程的个数,和核心数有关 b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)memory: swpd: 交换内存的使用总量 free:空闲物理内存总量buffer:用于buffer的内存总量cache:用于cache的内存总量swap: si:从磁盘交换进内存的数据速率(kb/s) so:从内存交换至磁盘的数据速率(kb/s)io:bi:从块设备读入数据到系统的速率(kb/s)bo: 保存数据至块设备的速率注意:这里的swap并不是指文件系统里的交换内存使用状况,而是内存数据和磁盘数据之间读写的相互转换:

1、证明si内存从磁盘中交换
#下面验证信息,再次打开一个终端连接,使用dd命令将磁盘数据写入到内存:
[root@localhost ~]# dd if=/dev/sda of=/dev/null bs=1024M count=1
#输入此命令之后在另一终端查看vmstat更新属性(每2s更新,更新10次):
[root@localhost ~]# vmstat 2 10



解析:这里发现内存从硬盘接收数据,就是说明了swap中的si表示为内存从磁盘中接收。

2、证明so内存数据交换到磁盘
#同样再次进行dd命令将内存数据写入文件:
[root@localhost ~]# dd if=/dev/zero of=/tmp/tempfile bs=1024M count=1
#再次打开vmstate显示swap信息
[root@localhost ~]# vmstat 2 10



解析:这里同样显示了si的数据在疯狂提高,说明,内存中正有数据在写入磁盘,也就是所谓的内存数据交换到磁盘。

3、显示内存及I/O数据等统计数据列表
[root@localhost ~]# vmstat -s




pmap 命令
pmap - report memory map of a process
打印进程对应的映射表(注:也可以打开/proc/PID/map来查看进程对应的映射)
使用方法:
pmap [options] pid ...
-x :显示所有详细格式信息

案例介绍:
#查看crond的pid

[root@localhost ~]# ps -C crond -o pid= | tr -cd '[0-9]\n'
778
#查看crond的pid(778)的内存映射信息
[root@localhost ~]# pmap  778




dstat 命令
dstat - versatile tool for generating system resource statistics
多功能系统资源生成统计工具(多颜色的字符显示)
使用格式:
dstat [-afv] [options..] [delay [count]]
-c: 显示cpu相关信息
-C #,#,...,total
-d: 显示disk相关信息
-D total,sda,sdb,...
-g:显示page相关统计数据
-m: 显示memory相关统计数据
-n: 显示network相关统计数据
-p: 显示process相关统计数据
-r: 显示io请求相关的统计数据
-s: 显示swapped相关的统计数据
--tcp: 显示tcp相关进程
--udp: 显示udp相关进程
--unix: 显示内核相关进程
--raw: 显示无状态raw进程
--socket: 显示套接字状态
--ipc: 显示ipc信息
--top-cpu:显示最占用CPU的进程
--top-io: 显示最占用io的进程
--top-mem: 显示最占用内存的进程
--top-latency: 显示延迟最大的进程

查看显示:
#每2秒更新一次数据,共显示10次
[root@mzf ~]# dstat 2 10



解析:如果不知道更新次数,和vmstat命令一样会无限循环更新,这里显示的内容比vmastat更加丰富,而且支持ps命令里的列出的几种进程类型选项。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vmstat pmap upptime