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. 如何以管理员方式打开VS

    第一种 打开VS快捷方式的属性对话框. 勾选"用管理员身份运行" 但是这种方式只有在点击快捷方式直接打开vs时是一管理员身份启动的,也就是如果直接打开Solution,则不是管理员 ...

  2. tensorflow convert_variables_to_constants

    在使用tf.train.Saver函数保存模型文件的时候,是保存所有的参数信息,而有些时候我们并不需要所有的参数信息.我们只需要知道神经网络的输入层经过前向传播计算得到输出层即可,所以在保存的时候,我 ...

  3. Windows10 搭建Kafka集群

    下载Kafka 1.下载Kafka:http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz 2.解压后复制Kafka文件夹,分 ...

  4. Spring Cloud(一):入门篇

    Spring Cloud 简介 Spring Cloud 是一个基于 Spring Boot 实现的微服务架构开发工具,可以快速构建分布式系统中的某些常用模式,如配置管理.服务治理.断路器.智能路由. ...

  5. goweb-搭建服务

    web应用简介 Web 应用在我们的生活中无处不在.看看我们日常使用的各个应用程序,它们要 么是 Web 应用,要么是移动 App 这类 Web 应用的变种.无论哪一种编程语言,只要 它能够开发出与人 ...

  6. Python中常见的8种数据结构的实现方法(建议收藏)

    数据结构作为计算机基础的必修内容,也是很多大型互联网企业面试的必考题.可想而知,它在计算机领域的重要性. 然而很多计算机专业的同学,都仅仅是了解数据结构的相关理论,却无法用代码实现各种数据结构. 栈 ...

  7. SpringCloud(八):springcloud-bus消息总线(刷新配置服务)

    Bus消息总线: 好了现在我们接着上一篇的随笔,继续来讲.上一篇我们讲到,我们如果要去更新所有微服务的配置,在不重启的情况下去更新配置,只能依靠spring cloud config了,但是,是我们要 ...

  8. JS中的slice()和splice()的区别以及记忆方式

    总结 splice()会改变原来的数组,返回的是被改变的内容,比如说通过splice删掉了某一项,那么返回的是删掉的这一项,当然还是会以数组的形式返回. slice不会对原数组进行改变,会返回一个新的 ...

  9. JS基础语法---Math对象的案例

    系统Max求最大值: var result= Math.max(10,20,30,40); console.log(result); 练习1:自己定义一个对象,实现系统的max的方法   //例子:自 ...

  10. es6 之class介绍

    class ECMAScript 2015 中引入的 JavaScript 类实质上是 JavaScript 现有的基于原型的继承的语法糖.类语法不会为JavaScript引入新的面向对象的继承模型. ...