您的位置:首页 > 运维架构 > Linux

Linux性能相关工具

2017-12-16 17:40 253 查看

进程管理相关命令:

pstree : 树状显示进程

选项:

-p : 显示PID,可以指定查看某个用户

ps : 查看进程状态

三种选项风格:

UNIX : 带 -
BSD : 不带 -
GUN : --

选项:

a : 所有与终端有关的进程
x : 所有与终端无关的进程
u : 显示进程所有者信息
f : 显示进程树,相当于--forest
k | --sort : 对某列属性排序(默认升序,属性前加-表示降序)
o : 定制要显示属性信息:PID,CMD,%cpu,%mem
L : 显示支持的属性列表
-C : 指定要显示的命令,多个命令用,分隔
-L : 显示线程
-e : 显示所有进程,相当于-A
-f : 显示完整格式程序信息
-F : 显示更完整格式的进程信息
-H : 以进程层级格式显示进程相关信息
-u userlist : 指定有效的用户ID或名称
-U userlist : 指定真正的用户ID或名称
-g gid或groupname : 指定有效的gid或组名称
-G gid或groupname : 指定真正的gid或组名称
-p pid : 显示指pid的进程
--ppid pid : 显示属于pid的子进程

ps输出的属性:



STAT : 进程状态

R :running
S : interruptable sleeping 可中断休眠
D : uninterruptable sleeping 不可中断的休眠
T : stopped 停止
Z : zombie 僵死
+ : 前台进程
l : 多线程进程
L :内存分页并带锁
N :低优先级进程
< : 高优先级进程
s : session leader,会话(子进程)发起者

VSZ: Virtual memory SiZe,虚拟内存集,线性内存

RSS: ReSident Size, 常驻内存集

ni:nice 值

pri:priority 优先级

psr:processor CPU编号

rtprio: 实时优先级

查找占用最多内存和CPU的进程:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head #查看内存
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head #查看CPU

使用watch实用程序执行重复的输出以实现对就程进行实时的监视:
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

pgrep : 搜索进程

使用ps [option] | grep等方式实现也可

pgrep使用扩展正则表达式搜索

pgrep [option] pattern
  -u uid : 生效者
  -U uid : 真实发起者
  -l : 显示进程名
  -a : 显示完整格式的进程名
  -t terminal : 与指定终端相关的进程
  -P pid : 显示指定进程的子进程

top : 实时监测

选项:

-d : 指定刷新时间,默认3秒
-b : 显示全部进程(不分页)
-n : 指定刷新次数,达到次数后退出

top显示的信息:



第一行: top - :当前系统时间  up : 系统运行时间  user : 在线用户数  load average : 系统平均负载  
第二行: total : 总进程数  running : 运行中进程  sleeping : 休眠进程数  stopped : 停止进程数  zombie : 僵死进程数
第三行: us : 用户空间占用CPU百分比  sy : 系统空间占用CPU百分比  ni : 用户进程空间内改变过优先级的进程占用CPU百分比  id : 空闲CPU百分比  wa : 等待IO的CPU百分比  hi : 硬中断  si : 软中断  st : 虚拟机偷走的百分比
第四行: Men :内存信息行
第五行: Swap :交换空间信息行
第六行:  PID : 进程号  USER : 用户   PR : 优先级  NI : NICE值  VIRT : 虚拟内存集  RES : 常驻内存  SHR : 共享内存 S : 进程状态   %CPU : 占用CPU百分比  %MEN : 占用内存百分比  TIME+ : 运行时间  COMMAND : 命令行

top内按键命令:

M : 按内存占用百分比大小排序
P :按cpu占用百分比大小排序,默认
T :按累计占有时长进行排序
l : 是否显示负载信息
t :是否显示cpu和进程的统计信息
m :是否显示内存和交互分区的信息
q :退出
k :kill,杀掉进程
s :改变top刷新频率**

kill : 向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写

显示当前系统可用信号: kill -l ; trap -l

常用信号: man 7 signal

1 | SIGHUP: 无须关闭进程而让其重读配置文件
2 | SIGINT: 中止正在运行的进程;相当于Ctrl+c
3 | SIGQUIT:相当于ctrl+\
9 | SIGKILL: 强制杀死正在运行的进程
15 | SIGTERM:终止正在运行的进程(默认)
18 | SIGCONT:继续运行
19 | SIGSTOP:后台休眠

指定信号的方法:
  (1)信号的数字标识:1, 2, 9
  (2)信号完整名称:SIGHUP
  (3)信号的简写名称:HUP

kill进程用法:

按PID:
kill [-SIGNAL] pid …
kill –n SIGNAL pid
kill –s SIGNAL pid

按名称:
killall [-SIGNAL] comm…

按模式:
pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名(pgrep可用)
-a: 显示完整格式的进程名(pgrep可用)
-P pid: 显示指定进程的子进程
   

  
  

I/O监控工具:

vmstat : 服务器I/O状态

vmstat [options] [delay [count]]
vmstat 1 10       #1秒刷新一次,刷新10次后退出


选项:
-s : 显示内存的统计数据

显示的信息:



procs:
r: 可运行(运行中或等待运行)进程的个数
b: 处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
memory:
swpd: 交换内存的使用总量
free:空闲物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap:
si:从磁盘交换进内存的数据速率(kb/s)
so:从内存交换至磁盘的数据速率(kb/s)
io:
bi:从块设备读入数据到内存中的速率(kb/s)
bo: 保存数据至块设备的速率
system:
in: interrupts 中断速率,包括时钟
cs: context switch 进程切换速率
cpu:
us : 用户CPU时间,
sy : 系统CPU时间,太高表示系统调用时间长,例如IO操作频繁
id : 空闲的CPU时间
wt : 等待IO的时间
st : 虚拟机占用的CPU时间

iotop : 类似top的监视IO使用状况的工具

选项:
-o : 只显示正在产生IO的进程或线程,可以在iotop运行中按o生效
-a : 显示累计IO量
-k : 使用kB为单位
-P : 仅显示进程,默认显示进程和线程
-n NUM : 设置监测次数,默认无限次
-d SEC : 设置监测间隔,默认为1秒
-p PID : 指定监测的进程/线程
-u USER : 指定监测某个用户
-b : 非交互模式,用于记录日志
-t : 加上时间戳,非交互模式
-q : 禁止显示开头几行,非交互模式
-q : 只在第一次监测时显示列名
-qq : 永远不显示列名
-qqq : 永远不现实IO汇总

iotop输出的信息:



第一行 : Read和Weite的速率总计
第二行 : 实际的速率
第三行:
  TID : 线程ID(按p切换为进程ID)
  PRIO : 优先级
  USER : 用户
  DISK READ : 磁盘读速率
   DISK WRITE : 磁盘写速率
  SWAPIN : swap交换百分比
  IO> : IO等待的百分
  COMMAND : 线程/进程命令

iostat : 统计CPU和设备IOS信息

iostat 1 10                 #1秒刷新一次,刷新10次后退出


pmap : 进程对应的内存映射

用法:pmap [options] pid [...]

选项:
-x: 显示详细格式的信息
例:pmap 1 #查看进程PID为1的进程内存映射

dastat : 系统资源统计,代替vmstat,iostat

用法:dstat [-afv] [options..] [delay [count]]

选项:
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 显示cpu0和cpu1的信息
-d:显示磁盘读写数据大小
-n:显示网络状态
-N eth1:指定要显示的网卡,有多块网卡时以,分隔
-l:显示系统负载情况
-m:显示内存使用情况
-g:显示页面使用情况
-p:显示进程状态
-s:显示交换分区使用情况。
-r:I/O请求情况
-y:系统状态
--ipc:显示ipc消息队列,信号等信息
--socket:用来显示tcp udp端口状态
-a:此为默认选项,等同于-cdngy
-v:等同于 -pmgdsc -D total
--output file : 把状态信息以csv的格式重定向到指定的文件中,例:dstat --output
--top-cpu:显示最占用CPU的进程
--top-io: 显示最占用io的进程
--top-mem: 显示最占用内存的进程
--top-latency: 显示延迟最大的进程
 

 

EPEL源上的监控工具:

htop : 升级版的top

glances : 监控系统资源利用情况

glances 会用一下几种颜色来代表状态:
  绿色:OK(一切正常)
  蓝色:CAREFUL(需要注意)
  紫色:WARNING(警告)
  红色:CRITICAL(严重)

选项:
-b: 以Byte为单位显示网卡数据速率
-d: 关闭磁盘I/O模块
-m: 禁用mount模块
-n: 禁用网络模块
-1:每个CPU的相关数据单独显示
-t #: 延迟时间间隔
-o {HTML|CSV}:输出格式
-f /path/to/somefile: 设定输入文件位置

glances内按键命令:
a : 对进程自动排序
c : 按 CPU 百分比对进程排序
m : 按内存百分比对进程排序
p : 按进程名字母顺序对进程排序
i : 按读写频率(I/O)对进程排序
d : 显示/隐藏磁盘 I/O 统计信息
f : 显示/隐藏文件系统统计信息
n : 显示/隐藏网络接口统计信息
s : 显示/隐藏传感器统计信息
y : 显示/隐藏硬盘温度统计信息
l : 显示/隐藏日志(log)
b : 切换网络 I/O 单位(Bytes/bits)
w : 删除警告日志
x : 删除警告和严重日志
1 : 切换全局 CPU 使用情况和每个 CPU 的使用情况
h : 显示/隐藏这个帮助画面
t : 以组合形式浏览网络 I/O
u : 以累计形式浏览网络 I/O
q : 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

glances监测远程系统:

服务器模式:
glances -s -B IPADDR
IPADDR : 指明监听本机哪个地址(默认为所有地址)

客户端模式:
glances -c IPADDR
IPADDR : 要监测的远程服务端地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 性能 top