性能数据的监控,除了针对整机进行外,还要求我们对某一运行的程序单独进行。常用的程序监控命令有ps和top。

Ps

ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以假如需要检测其情况,便能够使用ps命令了。
ps是用来报告程序执行状况的指令,可以搭配kill指令随时中断,删除不必要的程序。

使用方式: ps [options] [--help]

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义。

参数 说明
-A 列出所有的程序
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
-e 显示任何进程(此参数的效果和指定"A"参数相同)
-f 全格式(显示UID,PPIP,C与STIME栏位)
-C 指定执行指令的名称,并列出该指令的程序的状况

au(x)参数的输出格式:

参数 说明
USER 行程拥有者
PID pid
%CPU 占用的 CPU 使用率
%MEM 占用的内存使用率
VSZ 占用的虚拟内存大小
RSS 占用的物理内存大小
TTY 终端的次要装置号码 (minor device number of tty)
STAT 该进程的状态:
D: 不可中断的静止 (I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统)
START 行程开始时间
TIME 执行的时间
COMMAND 所执行的指令

范例1

[work@jx-testing-ps1933.jx.baidu.com ~]$ ps
  PID TTY          TIME CMD
24321 pts/0    00:00:00 bash
24414 pts/0    00:00:00 ps

能够看到,显示的项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)、COMMAND(该进程的命令行输入)。

范例2

使用带有-ef 选项的ps,返回系统中所有用户的所有进程的完整列表。一般将此ps命令的结果传送到 grep 中,则该结果更易于查看。例如:

[work@jx-testing-ps1933.jx.baidu.com ~]$ ps -ef | grep work
root     24316  2544  0 09:52 ?        00:00:00 sshd: work [priv]
work     24320 24316  0 09:52 ?        00:00:00 sshd: work@pts/0 
work     24321 24320  0 09:52 pts/0    00:00:00 -bash
work     24416 24321  0 10:44 pts/0    00:00:00 ps -ef
work     24417 24321  0 10:44 pts/0    00:00:00 grep work

使用PS命令分析系统性能的方法主要有:
1)首先,根据用户ID寻找由同一用户执行的许多相似任务,这些任务很可能是因为用户运行的某个脚本程序在后台启动多个进程而造成的。
2)接下来,检查TIME域中各进程累计占用CPU的时间,如果有某个进程累计占用了大量的CPU时间,通常说明该进程可能陷入了无限循环,或该进程的某些逻辑出了错
3)找到那些已陷入死锁的进程ID后,就可以使用kill命令强制终止该进程了。

Top

top命令和ps命令的基本作用是相同的,显示系统当前的进程和其它状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用、执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

top命令语法: top [-] [d delay] [q] [c] [S] [s] [i] [n]

参数 说明
d 指定更新的间隔,以秒计算
q 没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行
c 显示进程完整的路径与名称
S 累积模式,会将己完成或消失的子行程的CPU时间累积起来
s 安全模式
i 不显示任何闲置(Idle)或无用(Zombie)的行程
n 显示更新的次数,完成后将会退出top

top命令的显示

[work@jx-testing-ps1933.jx.baidu.com ~]$ top
top - 10:53:56 up 223 days, 16:04,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  57 total,   1 running,  56 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   8161244k total,  6548780k used,  1612464k free,    30500k buffers
Swap:        0k total,        0k used,        0k free,  6419912k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                         
    1 root      16   0  4752  544  452 S  0.0  0.0   0:01.88 init                                                            
    2 root      RT   0     0    0    0 S  0.0  0.0   0:22.27 migration/0                                                     
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.19 ksoftirqd/0                                                     
    4 root      RT   0     0    0    0 S  0.0  0.0   0:20.52 migration/1                                                     
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.22 ksoftirqd/1                                                     
    6 root      RT   0     0    0    0 S  0.0  0.0   0:18.87 migration/2                                                     
    7 root      34  19     0    0    0 S  0.0  0.0   0:00.25 ksoftirqd/2                                                     
    8 root      RT   0     0    0    0 S  0.0  0.0   0:12.73 migration/3                                                     
    9 root      34  19     0    0    0 S  0.0  0.0   0:00.23 ksoftirqd/3                                                     
   10 root       5 -10     0    0    0 S  0.0  0.0   0:00.04 events/0                                                        
   11 root       5 -10     0    0    0 S  0.0  0.0   0:00.03 events/1                                                        
   12 root       5 -10     0    0    0 S  0.0  0.0   0:39.59 events/2                                                        
   13 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 events/3                                                        
   14 root       5 -10     0    0    0 S  0.0  0.0   0:00.33 khelper                                                         
   15 root      15 -10     0    0    0 S  0.0  0.0   0:00.00 kacpid                                                          
   71 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 kblockd/0                                                       
   72 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 kblockd/1                                                       
   73 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 kblockd/2  

第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。
第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。
第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。
第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。
第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。
第六行显示的项目最多,下面列出了详细解释。

参数 说明
PID(Process ID) 进程标示号
USER 进程所有者的用户名
PR 进程的优先级别
NI 进程的优先级别数值
VIRT 进程占用的虚拟内存值
RES 进程占用的物理内存值
SHR 进程使用的共享内存值
S 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
%CPU 该进程占用的CPU使用率
%MEM 该进程占用的物理内存和总内存的百分比
TIME+ 该进程启动后占用的总的CPU时间
Command 进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

命令 说明
空格 立刻刷新
P 根据CPU使用大小进行排序
T 根据时间、累计时间排序
q 退出top命令
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据使用内存大小进行排序
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法
Ctrl+L 擦除并且重写屏幕
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽
i 忽略闲置和僵死进程。这是一个开关式命令
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10
S 切换到累计模式
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加
f或者F 从当前显示中添加或者删除项目
o或者O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

使用top命令也可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。

Linux性能监控(程序篇)的更多相关文章

  1. Linux性能监控

    转自:http://blog.csdn.net/chosen0ne/article/details/8200737 linux性能监控,就是要监控系统的各个子系统是否正常.linux主要的子系统包括: ...

  2. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  3. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

  4. linux性能监控 -CPU、Memory、IO、Network等指标的讲解

    [操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...

  5. Linux性能监控与分析之--- CPU

    Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...

  6. JVM-Java程序性能监控-初级篇

    前篇 - 小伙们都知道,java程序的性能监控主要是针对jvm中heap的监控~ 那么在做压力测试时如何对heap.线程等一系列的指标进行的监控的呢? 首先-你若不懂命令,那么就需要了解一套Java程 ...

  7. linux ---性能监控(工具)

    linux服务器性能监控-nmon Nmon 是一个分析aix和linux性能的免费工具,出自IBM,其采集的数据通过nmon_analyser生成报表 一.下载 官网下载地址 百度网盘 二.运行和使 ...

  8. Linux 性能监控的18个命令行工具

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我 ...

  9. linux性能监控分析及通过nmon_analyse生成分析报表

    nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...

  10. 【转载,整理】Linux性能监控

    一. 比较全的linux性能检测网站 1. 很好的网站,原文:http://os.51cto.com/art/201402/430050.htm 监测 cpu.内存.网络.IO等命令及工具   2.  ...

随机推荐

  1. R语言改变大小写 toupper()和 tolower()函数

    这些函数改变字符串的字符的大小写. 语法 toupper()和 tolower()函数的基本语法为: toupper(x) tolower(x) 以下是所使用的参数的说明: x - 向量输入. 示例 ...

  2. js 继承介绍

    js中继承的方式并不是明确的,这里介绍常用的几种 一.对象冒充(构造函数绑定) 原理:使用对象冒充继承基类,实质上是使用call或apply方法改变this 指针的指向 function Monkey ...

  3. springmvc与html之间的Json交互

    1.配置pom.xml 错误信息:The container 'Maven Dependencies' references non existing library 解决方案:下图的checkbox ...

  4. c#配置文件app.config 与 Settings.settings

    本篇博客将介绍C#中Settings的使用.参考:https://docs.microsoft.com/zh-cn/visualstudio/ide/managing-application-sett ...

  5. Vue 多路由文件的合并

    Vue 多路由文件的合并 1.使用的是ES6 数组的合并方法 let routes = new Set([...routes1, ...homerouters]);2.两个路由文件,导出的实际上就是一 ...

  6. 计算细胞数【BFS】

    问题描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数. 输入格式 2行:第1行为两个整数 mm, nn, 代表矩阵 ...

  7. 手把手教你写一个RPC

    1.1 RPC 是什么 定义:RPC(Remote Procedure Call Protocol)--远程过程调用协议 ,RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数 ...

  8. java中程序上线报错: tomcat中java.lang.OutOfMemoryError: PermGen space

    在程序测试没问题之后,上线试运行,在运行的过程中某个功能一点击就报如下错,然后重启服务器就好了,一会又是如此,解决方法如下(亲测) PermGen space的全称是Permanent Generat ...

  9. Lua脚本语言基础知识

      注释 在Lua中,你可以使用单行注释和多行注释. 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止.相当于C++语言中的"//". 多行注 ...

  10. 03.CSS选择器-->交集并集选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...