Linux性能分析——分析系统性能相关的命令
Linux性能分析——分析系统性能相关的命令
摘要:本文主要学习了Linux系统中分析性能相关的命令。
ps命令
ps命令用来显示系统中进程的运行情况,显示的是当前系统的快照。
基本语法
ps [选项]
选项说明
-e:显示所有进程。
-f:显示完整格式的进程信息。
-a:所有与终端相关的进程。
-u:所有与终端无关的进程。
-x:以用户为中心组织进程状态信息显示。
-l:显示长列表。
使用举例
使用ps命令:
[root@localhost ~]# ps
PID TTY TIME CMD
pts/ :: bash
pts/ :: ps
[root@localhost ~]#
显示执行的命令:
[root@localhost ~]# ps -f
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: -bash
root : pts/ :: ps -f
[root@localhost ~]#
显示所有进程以及执行的命令,可以查看进程的父进程ID:
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root : pts/ :: -bash
root : pts/ :: ps -ef
...
[root@localhost ~]#
显示目前所有在内存中的进程,可以查看进程的CPU占用率和内存占用率:
[root@localhost ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.0 0.2 pts/ Ss : : -bash
root 0.0 0.1 pts/ R+ : : ps -aux
...
[root@localhost ~]#
结果说明
使用 ps -ef 命令的结果说明:
F:表示这个程序的旗标,是内核分配给进程的系统标记。
S:表示进程的状态。
常用的值如下:
R:运行 runnable (on run queue)。
D:不可中断 uninterruptible sleep (usually IO)。
S:中断 sleeping。
T:停止 traced or stopped。
Z:僵死 zombie process。
UID:表示启动进程的用户ID。
PID:表示进程ID。
PPID:表示父进程ID。
C:表示进程CPU使用的资源百分比。
PRI:表示进程的执行优先权,其值越小越早被执行。
NI:表示进程的nice值,其表示进程可被执行的优先级的修正数值。
ADDR:表示这是内核函数,指出该程序在内存的那个部分。如果是个执行的程序,一般就是“-”。
SZ:表示使用掉的内存大小。
WCHAN:表示目前这个程序是否正在运作当中,若为“-”表示正在运作。
TTY:表示登入者的终端机位置。
TIME:表示使用掉的CPU时间。
CMD:表示所下达的指令名称。
使用 ps -aux 命令的结果说明:
USER:表示进程属于那个使用者。
PID:表示进程ID。
%CPU:表示进程使用掉的CPU资源百分比。
%MEM:表示进程所占用的物理内存百分比。
VSZ:表示进程使用掉的虚拟内存量,单位是Kbytes。
RSS:表示进程占用的固定的内存量,单位是Kbytes。
TTY:表示进程运行的终端机位置。
STAT:表示进程目前的状态。
常用的值如下:
R:运行,指进程正在运行或在运行队列中等待。
D:不可中断,指线程收到信号不唤醒和不可运行,进程必须等待直到有中断发生。
S:中断,指进程在休眠中或者被阻塞,在等待某个条件的形成或接收到信号。
T:停止,指进程收到SIGSTOP、SIGSTP、SIGTIN、SIGTOU信号后停止运行运行。
Z:僵死,指进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放。
START:表示进程被触发启动的时间。
TIME:表示进程实际使用CPU运作的时间。
COMMAND:表示进程的实际指令。
top命令
top命令提供了实时的对系统处理器的状态监视,能够实时显示系统中各个进程的资源占用状况。
基本语法
top [选项]
选项说明
i:使top不显示任何闲置或者僵死进程。
d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
c:显示整个命令行而不只是显示命令名。
S:指定累计模式。
交互参数
i:忽略闲置和僵死进程。这是一个开关式命令。
l:关闭或开启第一部分第一行top信息的表示。
t:关闭或开启第一部分第二行Tasks和第三行Cpus信息的表示。
m:关闭或开启第一部分第四行Mem和第五行Swap信息的表示。
P:根据CPU使用百分比大小进行排序。
T:根据时间/累计时间进行排序。
N:根据PID大小进行排序。
M:根据内存占用率大小进行排序。
c:切换显示命令名称和完整命令行。
n:设置在进程列表所显示进程的数量。
k:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号,如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
s:改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s。
q:退出程序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
S:切换到累计模式。
f或者F:从当前显示中添加或者删除项目。
o或者O:改变显示项目的顺序。
使用举例
[root@localhost ~]# top
top - :: up day, :, users, load average: 0.00, 0.01, 0.05
Tasks: total, running, sleeping, stopped, zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : total, free, used, buff/cache
KiB Swap: total, free, used. avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
root S 0.0 0.7 :07.99 systemd
root S 0.0 0.0 :00.28 kthreadd
root S 0.0 0.0 :00.55 ksoftirqd/
root - S 0.0 0.0 :00.00 kworker/:0H
root rt S 0.0 0.0 :00.44 migration/
root S 0.0 0.0 :00.00 rcu_bh
root S 0.0 0.0 :00.00 rcuob/
root S 0.0 0.0 :00.00 rcuob/
root S 0.0 0.0 :00.00 rcuob/
root S 0.0 0.0 :00.00 rcuob/
...
[root@localhost ~]#
资源概况字段说明
top视图的上半部分是资源概况。
1)第一行是系统的一些信息。
:::表示系统当前时间。
up day, ::表示系统运行了1天13个小时28分钟。
users:表示系统当前有2个用户连接。
load average: 0.00, 0.01, 0.05:表示系统最近1分钟、5分钟、15分钟的平均负载。
2)第二行是系统进程的预览信息。
n total:表示进程总数。
n running:表示正在运行的进程数。
n sleeping:表示休眠的进程数。
n stopped:表示停止的进程。
n zombie:表示僵尸进程。
3)第三行是CPU的运行信息,当有多个CPU时,内容可能会超过两行。
n us:表示用户空间占用CPU时间百分比。
n sy:表示内核空间占用CPU时间百分比。
n ni:表示用户进程空间内改变过优先级的进程占用CPU时间百分比。
n id:表示空闲时间占用CPU百分比。
n wa:表示等待输入输出占用CPU时间百分比。
n hi:表示硬件中断占用CPU时间百分比。
n si:表示软件中断占用CPU时间百分比。
n st:表示虚拟机占用CPU时间百分比。
4)第四行是内存空间的使用情况。
n total:表示内存总量。
n free:表示剩余的内存数量。
n used:表示使用的内存数量。
n buff/cache:表示缓冲的内存数量。
5)第五行是交换空间的使用情况。
n total:表示交换区总量。
n free:表示空闲的交换区数量。
n used:表示使用的交换区数量。
n avail Mem:表示缓冲的交换区数量。
进程信息字段说明
top视图的下半部分是进程信息。
PID:进程id。
PPID:父进程id。
UID:进程所有者的id。
USER:进程所有者的用户名。
GROUP:进程所有者的组名。
TTY:启动进程的终端名,不是从终端启动的进程则显示为?。
PR:优先级。
NI:nice值。负值表示高优先级,正值表示低优先级。
P:最后使用的CPU,仅在多CPU环境下有意义。
%CPU:上次更新到现在的CPU时间占用百分比。
TIME:进程使用的CPU时间总计,单位秒。
TIME+:进程所使用的CPU时间总计,单位1/100秒。
%MEM:进程使用的物理内存百分比。
VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES。
SWAP:进程使用的虚拟内存中被被换出的大小。
RES:进程使用的、未被换出的物理内存的大小。
CODE:可执行代码占用的物理内存大小。
DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小。
SHR:共享内存大小。
nFLT:页面错误次数。
nDRT:最后一次写入到现在,被修改过的页面数。
S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)。
COMMAND:命令名/行。
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
Flags:任务标志。
Linux性能分析——分析系统性能相关的命令的更多相关文章
- Linux性能监控分析命令(五)—free命令介绍
性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...
- Linux性能监控分析命令(四)—top命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
- Linux性能监控分析命令(三)—iostat命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...
- Linux性能监控分析命令(二)—sar命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
- linux性能监控分析及通过nmon_analyse生成分析报表
nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...
- linux性能调分析及调优
转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...
- 【转载】linux性能监控分析及通过nmon_analyse生成分析报表
转载地址:http://www.cnblogs.com/Lam7/p/6604832.html nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文 ...
- Linux性能监控分析命令(一)—vmstat命令详解
一.vmstat介绍 语法格式: vmstat [-V] [-n] [-S unit] [delay [count]] -V prints version. -n causes the headers ...
- Linux性能监控分析命令
vmstat sar iostat top free uptime netstat ps strace lsof
随机推荐
- IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成
CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的).W3C也有新的版本更新,称为CSS3.虽然浏览器已经准备开始实现CSS3 ...
- 禧云Redis跨机房双向同步实践
编者荐语: 2019年4月16日跨机房Redis同步中间件(Rotter)上线,团餐率先商用: 以下文章来源于云纵达摩院 ,作者杨海波 禧云信息/研发中心/杨海波 20191115 关键词:Rot ...
- JS如何判断鼠标滚轮向上还是向下滚动
前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...
- Exception,异常处理操作try{}catch(XXXException e){}finally{}
package seday07.exception;/** * @author xingsir * try-catch 异常处理机制 * 语法: * try{ * 代码片段 * }catch(XXXE ...
- Implement Dependent Reference Properties 实现从属引用属性 (XPO)
In this lesson, you will learn how to implement properties whose values can depend on other properti ...
- 【重学Git】高级命令篇
1.分离HEAD.HEAD 总是指向当前分支上最近一次提交记录. 所谓分离HEAD,就是让HEAD直接指向某一条具体的提交记录,而不是默认的通过分支名指向当前分支的最近一条提交记录. 2.相对引用^. ...
- 【Visio流程图】借助redis来实现数据即时刷新
[需求:]数据从竞品网站爬过来,经过分析处理之后,把结果通过网页实时反馈给业务人员. [应用:]2个应用: 一个是爬取数据的应用:不断从竞品网站爬数据,每次爬到的数据为一批.然后,对每一批爬到的数据进 ...
- 详解 DNS 与 CoreDNS 的实现原理
域名系统(Domain Name System)是整个互联网的电话簿,它能够将可被人理解的域名翻译成可被机器理解 IP 地址,使得互联网的使用者不再需要直接接触很难阅读和理解的 IP 地址. http ...
- 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...
- 以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取【原创】
以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号 ...