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
随机推荐
- [Muxi_k] Manjaro安装WPS过程
Manjaro安装WPS过程 首先安装WPS: sudo pacman -S wps-office 1一条命令解决安装好后就可以在显示应用程序这里看到图标了 笔者在安装的时候出了点问题,就是下载了一短 ...
- FLV提取AAC音频单独播放并实现可视化的频谱
如上图,要实现对FLV直播流中音频的识别,并展示成一个音频相关的动态频谱. 一. 首先了解下什么是声音? 能量波,有频率有振幅,频率高低就是音调,振幅大小就是音量:采样率是对频率采样,采样精度是对幅度 ...
- 单个div元素实现双边框
昨天被问到一个很有意思的问题,单个div元素怎么实现双边框,当时脑子懵了一下,然后就回答出来用伪元素,别的实在是想不起来了,所以在此总结一下子防止以后再被问到 总结了一下大约有以下几种方案: 伪元素实 ...
- Java中的String为什么要设计成不可变的?
一.不可变类和不可变对象 Normally,you create an object and allow its contents to be changed later.However ,occas ...
- Django路由系统的简介与使用
Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL 与 为该URL调用的视图函数之间的映射表. ...
- VS2010到VS2019各个版本的密钥
VS2019专业版和企业版的密钥 Visual Studio 2019 EnterpriseBF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Profe ...
- 彻底理解volatile,领悟其中奥妙
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- docker postgres使用
1.拉取镜像文件docker pull postgres 2.容器后台进程运行,向外暴露32769端口 docker run -it --name mypostgres -p 32769:5432 - ...
- Vue组件化开发
Vue的组件化 组件化是Vue的精髓,Vue就是由一个一个的组件构成的.Vue的组件化设计到的内容又非常多,当在面试时,被问到:谈一下你对Vue组件化的理解.这时候又有可能无从下手,因此在这里阐释一下 ...
- cssW3c书写规范
书写规范:{ 1.选择器名和{大括号之间必须空格(p {}) 2.属性名与之后的:之间不允许空格,:与属性值之间必须空格( p{font-size: 20px;}) 3.并集选择器的每个选择器声明必须 ...