Linux性能监控(程序篇)
性能数据的监控,除了针对整机进行外,还要求我们对某一运行的程序单独进行。常用的程序监控命令有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 |
第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。
第二行显示的是所有启动的进程、目前运行的、挂起 (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性能监控(程序篇)的更多相关文章
- Linux性能监控
转自:http://blog.csdn.net/chosen0ne/article/details/8200737 linux性能监控,就是要监控系统的各个子系统是否正常.linux主要的子系统包括: ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- linux性能监控 -CPU、Memory、IO、Network等指标的讲解
[操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...
- Linux性能监控与分析之--- CPU
Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...
- JVM-Java程序性能监控-初级篇
前篇 - 小伙们都知道,java程序的性能监控主要是针对jvm中heap的监控~ 那么在做压力测试时如何对heap.线程等一系列的指标进行的监控的呢? 首先-你若不懂命令,那么就需要了解一套Java程 ...
- linux ---性能监控(工具)
linux服务器性能监控-nmon Nmon 是一个分析aix和linux性能的免费工具,出自IBM,其采集的数据通过nmon_analyser生成报表 一.下载 官网下载地址 百度网盘 二.运行和使 ...
- Linux 性能监控的18个命令行工具
对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我 ...
- linux性能监控分析及通过nmon_analyse生成分析报表
nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...
- 【转载,整理】Linux性能监控
一. 比较全的linux性能检测网站 1. 很好的网站,原文:http://os.51cto.com/art/201402/430050.htm 监测 cpu.内存.网络.IO等命令及工具 2. ...
随机推荐
- [译]用R语言做挖掘数据《五》
介绍 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. ...
- [转]jquerUI Dialog中隐藏标题栏的关闭"X"按钮
本文转自:http://blog.chinaunix.net/uid-144593-id-2804206.html 方法1. 在CSS文件中添加如下样式既可 .ui-dialog-titlebar-c ...
- Linq中连接
Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.各个用法如下. 注:本文内容主要来自<Linq实战>,本例中用到的对象请见文章底部. 1. 组连接 组连接是与分组查询是一样的. ...
- HTML基础-常用标签及图片
标记/标签{元素} 双标签: <标签>内容</标签> <html></html> 网页 页面的根元素 <head></head& ...
- Hibernate入门(四)—— 查询
一.Hibernate查询 1.Hibernate检索(查询)方式的分类 OID检索 :根据主键查询,get/load 对象导航检索 :通过一个对象获得其关联对象.[重点] Category cate ...
- C++学习笔记: 智能指针
c++ 智能指针学习新的 class Simple { public: Simple() { number = param; std::cout << "Simple: &quo ...
- BZOJ1103 [POI2007]大都市
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了. 不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1.. ...
- 【Android】14.0 UI开发(五)——列表控件RecyclerView的瀑布布局排列实现
1.0 列表控件RecyclerView的瀑布布局排列实现,关键词StaggeredGridLayoutManager LinearLayoutManager 实现顺序布局 GridLayoutMan ...
- CSS 层叠与继承
三种继承css方式 1.段内继承 <p style="color: red;font-size:50px;">样式原文</p> 原文变成 红色, 原文字体变 ...
- Spring Boot 开发入门
准备工作 我们将使用Java开发一个简单的"Hello World" web应用,项目采用Maven进行构建 在开始前,打开终端检查下安装的Java和Maven版本是否可用: C: ...