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性能分析——分析系统性能相关的命令的更多相关文章

  1. Linux性能监控分析命令(五)—free命令介绍

    性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...

  2. Linux性能监控分析命令(四)—top命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

  3. Linux性能监控分析命令(三)—iostat命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...

  4. Linux性能监控分析命令(二)—sar命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

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

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

  6. linux性能调分析及调优

    转:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及调优介绍 写在前面:计算机要解决的基本问题之一是 ...

  7. 【转载】linux性能监控分析及通过nmon_analyse生成分析报表

    转载地址:http://www.cnblogs.com/Lam7/p/6604832.html nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文 ...

  8. Linux性能监控分析命令(一)—vmstat命令详解

    一.vmstat介绍 语法格式: vmstat [-V] [-n] [-S unit] [delay [count]] -V prints version. -n causes the headers ...

  9. Linux性能监控分析命令

    vmstat sar iostat top free uptime netstat ps strace lsof

随机推荐

  1. IT兄弟连 HTML5教程 CSS3揭秘 CSS规则的组成

    CSS和HTML一样都是由W3C制定的标准,本章中介绍的特性和功能还是来源于CSS1和CSS2(CSS2是根据CSS1扩展的).W3C也有新的版本更新,称为CSS3.虽然浏览器已经准备开始实现CSS3 ...

  2. 禧云Redis跨机房双向同步实践

    编者荐语: 2019年4月16日跨机房Redis同步中间件(Rotter)上线,团餐率先商用: 以下文章来源于云纵达摩院 ,作者杨海波   禧云信息/研发中心/杨海波 20191115 关键词:Rot ...

  3. JS如何判断鼠标滚轮向上还是向下滚动

    前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动? 我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗? 但我不确定,也出于好奇心,于是开始了一番探索 思路:通过even ...

  4. Exception,异常处理操作try{}catch(XXXException e){}finally{}

    package seday07.exception;/** * @author xingsir * try-catch 异常处理机制 * 语法: * try{ * 代码片段 * }catch(XXXE ...

  5. Implement Dependent Reference Properties 实现从属引用属性 (XPO)

    In this lesson, you will learn how to implement properties whose values can depend on other properti ...

  6. 【重学Git】高级命令篇

    1.分离HEAD.HEAD 总是指向当前分支上最近一次提交记录. 所谓分离HEAD,就是让HEAD直接指向某一条具体的提交记录,而不是默认的通过分支名指向当前分支的最近一条提交记录. 2.相对引用^. ...

  7. 【Visio流程图】借助redis来实现数据即时刷新

    [需求:]数据从竞品网站爬过来,经过分析处理之后,把结果通过网页实时反馈给业务人员. [应用:]2个应用: 一个是爬取数据的应用:不断从竞品网站爬数据,每次爬到的数据为一批.然后,对每一批爬到的数据进 ...

  8. 详解 DNS 与 CoreDNS 的实现原理

    域名系统(Domain Name System)是整个互联网的电话簿,它能够将可被人理解的域名翻译成可被机器理解 IP 地址,使得互联网的使用者不再需要直接接触很难阅读和理解的 IP 地址. http ...

  9. 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)

    关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...

  10. 以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取【原创】

    以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号 ...