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
随机推荐
- 【游戏开发】网络编程之浅谈TCP粘包、拆包问题及其解决方案
引子 现如今手游开发中网络编程是必不可少的重要一环,如果使用的是TCP协议的话,那么不可避免的就会遇见TCP粘包和拆包的问题,马三觉得haifeiWu博主的 TCP 粘包问题浅析及其解决方案 这篇博客 ...
- Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)
一.前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数.我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理.其 ...
- java高并发系列 - 第20天:JUC中的Executor框架详解2之ExecutorCompletionService
这是java高并发系列第20篇文章. 本文内容 ExecutorCompletionService出现的背景 介绍CompletionService接口及常用的方法 介绍ExecutorComplet ...
- jvm虚拟机笔记<四> 虚拟机字节码执行引擎
一.运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和执行的数据结构,是虚拟机栈的栈元素. 栈帧存储了局部变量表,操作数栈,动态连接,和返回地址等. 每一个方法的执行 对应的一个栈帧在虚拟机里面从入栈 ...
- PHP bcpow BC数学函数
定义和用法 bcpow - 任意精度数字的乘方 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 语法 bcpow( string $left_operand , string $right_ ...
- 【转载】Android 中 View 绘制流程分析
创建Window 在Activity的attach方法中通过调用PolicyManager.makeNewWindo创建Window,将一个View add到WindowManager时,Window ...
- Octave中的常用操作2
>> ones(2:3)ans = 1 1 1 1 1 1 >> 2*ones(2:3)ans = 2 2 2 2 2 2 >> rand(3,3) 产生0~1中的 ...
- Navicat Premium 破解方法
最新Navicat Premium12 破解方法,亲测可用 1.下载Navicat Premium 官网https://www.navicat.com.cn/下载最新版本下载安装(文末,网盘地址有64 ...
- jt格式文件与3D数据压缩
介绍 JT是西门子公司推出的PLM通用三维格式,设计为一个开放.高效率的.紧凑,持久性存储的产品数据格式,用于产品可视化.协作和CAD数据共享.JT文件格式包括多方面的数据,以及对曲面边的精准表示,产 ...
- JVM-4-堆内存划分
什么是堆内存划分 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块, 一般分为新生代.老年代和永久代,这就是JVM的内存分代策略.(JDK 1.8之后将最初的永久代取消了,由元空间 ...