码迷,mamicode.com
首页 > 其他好文 > 详细

htop/dstat/top/ps,vmstat

时间:2015-12-28 06:31:32      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:虚拟内存   信息   风格   用户   中心   htop/dstat/top/ps   

ps命令

1ps简介

ps命令是一个查看进程的命令,使用该功能可以确定有那些正在运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

2、ps及命令参数

ps选项有三种风格:

(1) UNIX 风格:选项前必须带有-连字符;如:-e

(2) BSD 风格  :选项前不使用-连字符 如:aux

(3) GNU 风格 : 选项必须使用长格式显示

ps [选项]

a:所有与终端相关的进程;

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

-e:显示所有进程

-f:显示完整格式的进程信息

-F:显示完整格式的进程信息;

-H:以层级结构显示进程的相关信息

-o FILED1,FILED2,...:自定义要显示的字段列表,以组合出现时记得写在后面

常用组合:ps aux:显示所有进程状态信息显示

ps -ef:显示所有进程以完整格式显示

ps -eFH:以层级显示所有完整信息

ps -eoaxo

 示例:ps aux

技术分享

 USER:用户

 PID:用户pid

 %CPU:cpu的使用率

 %MEM:占用的内存使用率

  VSZ:占用的虚拟内存大小

 RSS:占用的内存大小

 TTY:是否与终端相关

 STAT:进程状态

进程状态:

R:运行中

S:可中断睡眠

D:不可中断睡眠

T:停止中

Z:僵尸进程

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

ssession leader 

 START:启动进程的时间

 TIME:进程消耗cpu的时间

 COMMAND:命令的名称和参数

示例:ps -ef

  技术分享

Ccpu的占用百分比

UID:用户

PPID:父进程ID

STIME:启动时间

TTY:显示是否与终端相关

TIME:累计运行时间

CMD:启动此进程的命令

 

示例:ps -eFH

技术分享

PSR:在那颗cpu上运行

 

示例:ps -eo FILED1,FILED2,...

常用的fieldpid, ni, priority, psr, pcpu, stat, comm, tty, ppid, rtprio

ninice值;

prioritypriority, 优先级;

rtprioreal time priority,实时优先级;

 

技术分享

  

top命令:

top命令可以实时动态地查看系统的整体运行情况,通过top命令所提供的交互式界面,用热键可以修改。

 

语法格式:

top [选项]

 

交互式命令:

P:以占据cpu百分比排序

M:以占据内存百分比排序

T:累计占用cpu时间排序

luptime信息

ttaskscpu信息

m:内存信息

h:显示帮助画面

k:终止一个进程

r:重新安排一个进程的优先级别

q:退出程序

i:忽略闲置和僵死进程,这是一个开关式命令

s:改变刷新时间间隔

t:显示进程和cpu状态信息

c:显示命令名称和完整命令行

M:根据常驻内存大小进行排序

T:根据时间/累计时间进行排序

W:将当前设置写入~/.toprc文件中

 

选项:

-d # :指定刷新时间间隔,默认为3

-b :以批处理方式显示

-n #:显示多少批次

-c :显示完整的命令

-u 用户名:指定用户名

-p 进程号:指定进程

 

 

 实例:top命令

技术分享解释:

top - 163539【当前系统时间】

12 min【系统已经运行了12分钟】

1 user【当前共有1个用户登录】

load average:0.00, 0.02, 0.00【过去1分钟、5分钟、15分钟的平均负载,等待运行进程是长度】

Tasks: 96 total【总进程数】

1 running【正在运行的进程数】

95 sleeping【睡眠的进程数】

0 stopped【停止的进程数】

0 zombie【冻结进程数】

Cpu(s):0.0%us【用户空间占用cpu百分比】

0.3%sy【内核空间占用cpu百分比】

0.0%ni【用户进程空间内改变过优先级的进程占用cpu百分比】

99.3%id【空闲cpu百分比】

0.3%wa【等待输入的cpu时间百分比】

0.0 hi【处理硬件中断所占据的百分比】

0.0 si【处理软件中断所占据的百分比】

0.0 st【被虚拟化偷走的百分比】

Mem: 1004768k total【物理内存总量】

203204k used【使用的内存总量】

801564k free【空闲内存总量】

23624k buffers【用作内核缓存的内存量】

Swap: 2097148k total【交换区总量】

0k used【使用的交换区总量】

2097148k free【空闲交换区总量】

98900k cached【缓冲的交换区总量】

 

 

PID:进程pid

USER:用户名

PR:优先级

NI:nice

VIRT:虚拟内存集

RES:常驻内存集

SHR:共享内存空间

S:进程状态

%CPU:占据cpu百分比

%MEM:内存百分比

TIME+:运行时间

COMMAND:启动命令

 

htop命令

  htop命令比top更为强大的进程查看工具

    1) 快速查看关键性能统计数据,如CPU(多核布局)、内存/交换使用;
     2) 可以横向或纵向滚动浏览进程列表,以查看所有的进程和完整的命令行;
     3) 杀掉进程时可以直接选择而不需要输入进程号;
      4) 通过鼠标操作条目;
      5) top启动得更快;

 htop命令交互式常用功能键

F1 : 查看htop使用说明        

F2 : 设置        

F3 : 搜索进程      

F4 : 过滤器,按关键字搜索      

F5 : 显示树形结构    

F6 : 选择排序方式          

F7 : 减少nice值,这样就可以提高对应进程的优先级          

F8 : 增加nice值,这样可以降低对应进程的优先级        

F9 : 杀掉标记中的进程        

F10 : 退出htop        

/ : 搜索字符      

l :显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件  

u :显示所有用户,并可以选择某一特定用户的进程      

s : 将调用strace追踪进程的系统调用        

t : 显示树形结构        

H :显示/隐藏用户线程      

I :倒转排序顺序      

K :显示/隐藏内核线程          

M :按内存占用排序      

P :按CPU排序          

T :按运行时间排序      

a:绑定指定进程以那个cpu运行 一个cpu不会显示)

上下键或PgUP, PgDn : 移动选中进程左右键或Home, End : 移动列表      

     Space(空格) : 标记/取消标记一个进程。

命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程

 

htop命令选项:

-p PID:显示指定的pid进程

-C :不以颜色显示界面

-s NAME :排序指定的类型

   -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。

-d 选项 : 设置刷新的延迟时间。例如,htop -d 10命令会使输出在1秒后才会刷新(参数 -d 的单位是100毫秒秒)

htop示例:

 

技术分享

 

 

  (1):f1查看htop的使用说明

 技术分享


 

(2):f2设置htop属性

技术分享

 

(3):显示pid1的进程

命令:htop -p 1

输出:

技术分享

 

(4):不以颜色显示界面

命令:htop -C

输出:

技术分享 

 

  (5):显示指定用户的进程

命令:htop -u root

输出:

技术分享

 

(6):设置刷新的延迟时间(默认是100毫秒)

命令:htop -d 100   :以一秒刷新一次

输出:

技术分享

 

        (7)以PID大小排序

命令:htop -s PID

输出:

技术分享

 

 

vmstat命令:

vmstat介绍:

       vmstat命令显示虚拟内存的数据,但它可以显示进程、内存、io等系统整体运行状态。

 

   选项:

-S [k|m]:kibmib为单位显示信息

-m:显示slab信息

-s:以表格方式显示事件计数器和内存状态

-d :报告磁盘状态

-p:显示指定的硬盘分区状态

 

  参数:

事件间隔:状态信息刷新的时间间隔

次数:显示的次数

 

   实例:1、两秒刷新一次

命令:vmstat 2

输出:

技术分享

 

注释:

procs(进程)

r:等待运行的进程的个数;CPU上等待运行的任务的队列长度

b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度

Memory(内存)

 

swpd:使用虚拟内存大小,如果swpd的值不为0,但是SImso的值长期为0,,这种情况不会影响系统性能。

  free:空闲物理内存大小

  buff:用作缓冲的内存大小

    cache:用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache出,那么磁盘的读IO bi会非常小。

swap

  si:数据进入swap中的数据速率(kb/s

  so:数据离开swap的速率(kb/s)

 

注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IOcpu都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了不能光看这一点,还要结合siso,如果free很少,但是siso也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

  

IO(现在linux版本块的大小)

  bi:从块设备读入数据到系统的速度(kb/s

  bo:保存数据至块设备的速率(kb/s

 

注意:随机磁盘读写的时候,这2个值越大(如超过1024K),能看到cpuIO等待的值也会越大

 

system(系统)

in:每秒中断数,包括时钟中断

cs:每秒上下文切换数

注意:上面2个值越大,会看到由内核消耗的cpu时间会越大

 

  cpu(以百分比表示)

us:用户进程执行时间百分比(user time

 

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或者进行加速。

 waIO等待时间百分比

wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈。

  id:空闲时间百分比

  st:被虚拟内存偷走的时间百分比

 

2、mib显示

命令: vmstat -S m

输出

技术分享

 3、以表格方式显示事件计数器和内存状态

命令:vmstat -s

输出:

技术分享

 

  4、显示sda1分区状态

命令:vmstat -p /dev/sda1

输出:

技术分享

 

 

dstat命令

  dstat介绍:

dstat命令是一个非常精巧的使用工具,它是一个全能的系统信息统计工具。

 

  界面介绍:

下面默认显示-cdngy

技术分享

   解释:

usr:用户进程数

sys:系统进程数

idl:空闲进程数

wai:等待IO

hiq:硬件中断

siq:软件中断

read:硬盘读性能

writ:硬盘写性能

recv:网络的接受

send:网络的发送

in:页面的换入

out:页面的换出

int:系统中断次数

csw:上下文切换

 

  

  选项:

 -c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。

 -C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0cpu1的信息。 

  -d:显示磁盘的相关信息

  -Dsdasdb...,total

  -g:使用页面的使用情况

  -i:显示中断

  -l:显示平均负载

  -m:显示内存

  -n:显示网络相关的统计数据

  -Neth1,total:有多块网卡时,指定要显示的网卡

  -p:统计进程数据,包括运行队列,不可中断睡眠,新创建进程的速率

  -r:启用IO请求数据,包括io的读、写相关请求

  -s:统计swap的数据,已用的,空闲的

  -t:输出当前时间

  -y:系统状态。 --ipc:显示ipc消息队列,信号等信息

  --socket:用来显示tcp udp端口状态

  --fs:显示系统状态

   --aio:统计异步io的数据

  --ipc:进程间通信

  --raw:裸套接字的相关数据

  --tcptcp连接(listenestablished,syn,time_wait,close)等状态

  --udp

  --top-bio:最消耗磁盘io的进程

  --top-cpu:显示最占用CPU的进程;

  --top-io:最占用io的进程;

  --top-mem:最占用内存的进程;

  --top-lantency:延迟最大的进程

  

--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件

 

 

示例:

监控swapprocesssocketsfilesystem并显示监控的时间

   命令:dstat -tsp --socket --fs

输出:

技术分享

将结果输出到文件中 加--output file

输出:

技术分享


htop/dstat/top/ps,vmstat

标签:虚拟内存   信息   风格   用户   中心   htop/dstat/top/ps   

原文地址:http://kening.blog.51cto.com/10985929/1728959

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!