dstat,htop,top,ps命令 (Blog 8)

 

Linux哲学思想之一:一切皆文件:
内核将其参数全部映射为文件;这些文件保存在/proc, /sys目录中;
/proc目录:保存内核及进程状态信息,是内核参数的映射;

内核参数:
可调参数:调整运行特性;/proc/sys
不可调参数:输出内核统计信息及状态信息;

进程状态:/proc/# 与进程号同名的目录,目录下存放许多当前进程相关信息;

进程号:PID,标识当前系统上的某个进程;

抽象成文件,其内容不方便查看;就用一些命令,为了更直观地查看,输出这些内核状态统计数据;

ps命令:
格式:
UNIX:有-
BSD: 无-
GNU: —

常用组合:
ps axu
a: affinity, 与终端相关;
x: 与终端无关;
u: user, 与用户为中心;
ps -ef
-e: 与终端相关及与终端无关;
-f: full format,完整格式;
ps -eFH
-H: Hierarchy, 层级结构显示;
-F:Full format,更完整的格式;

所有组合中相关字段解释:
PID 进程PID
TTY 进程类型
STAT 进程状态
TIME 占据CPU时间”累积”时长
COMMAND/CMD 运行为进程的程序文件;

USER 进程的身份
%CPU “累积”占用CPU百分比;
%MEM 占据整个内存空间的百分比;
VSZ 占据虚拟内存大小;被称为”虚拟内存集” 虚拟内存:线性地址空间;可被交换到swap中的数据 …;
RSS 占据物理内存大小:被称为”常驻内存集” 不可被交换到swap中的指令 …;
START/STIME 启动进程的系统时间;

PPID 进程的父进程的ID号;
C 进程占用CPU百分比;

进程类型
与终端相关:/dev/tty#, /dev/ttyS#, /dev/pts/#
与终端无关:?

进程状态
运行:Runing, R
停止:sTopping, T
僵死:Zombie, Z

前台进程:+
多线程进程:l
高优先:<
低优先:N

不可中断睡眠:D (uninterrupt sleeping)
可中断睡眠:S (interrupt sleeping)

领导进程:s (session leader)

top命令:
top option
选项:
-b ;以批次显示;默认不切换批次;
-n # ;与-b连用;显示#批;
-d # ;delay,延迟;

内建命令:
l: 隐藏或显示topk栏; uptime命令也可获取;
t: 隐藏或显示task或cpu信息;
1: cpu按个显示或总体显示;
m: 隐藏或显示mem或swap信息;
k: 终止指定PID的进程;
d: 调整delay值;

显示信息:
top – 17:25:02 up 3:03, 5 users, load average: 0.11, 0.13, 0.10
系统时间; date
系统运行时间,
当前登陆用户; who | wc -l
平均负载: 过去1,5,15分钟等待运行进程的队列长度;其值应该小于CPU数量;

Tasks: 369 total, 2 running, 367 sleeping, 0 stopped, 0 zombie
进程状态: 进程个数; 运行进程数; 睡眠进程数; 停止运行进程数; 僵尸进程数;

KiB Mem : 1003160 total, 390552 free, 168096 used, 444512 buff/cache
内存(KiB): 总内存; 空闲内存; 使用内存; buff/cache占用; (实际空闲: free + buff/cache)

KiB Swap: 2097148 total, 2097148 free, 0 used. 616460 avail Mem
swap(KiB): 总SWAP大小; 空闲swap; 使用swap; 可用内存;

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU: us: 用户空间占据CPU百分比; sy: 内核空间占据CPU百分比; ni: 调整NICE值额外占据CPU百分比; id: 空闲百分比; hi: 硬件中断占据CPU百分比; si: 软中断占据CPU百分比; st: 被虚拟化技术偷走占据CPU百分比; cs: 进程切换占据CPU百分比;

PR: PR+100=优先级范围;
NI: NICE值
VIRT: 虚拟内存集: 虚拟内存占据大小;
RES: 常驻内存集: 不可被交换到swap中的指令;
SHR: 共享内存: 进程共用的共享库;
%CPU: 进程占据CPU百分比
%MEM: 占据内存整个空间百分比;
TIME+: CPU的累积时长;

htop命令:
配置EPEL源:
~]# cat /etc/yum.repos.d/CentOS-EPEL.repo
# fedora epel
[epel]
name=Fedora EPEL for CentOS-$releasever
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
enabled=1
~]# yum -y install htop

htop option
选项
-d # ;delay,延迟;
-u UserName:仅显示指定用户的进程
-s COLUME: 以指定字段进行排序;

内建命令
u: 显示指定用户的进程
H:线程
K:内核线程
F: 高亮光标跟踪进程;
P M T: CPU, MEM, TIME
F6 > : 选择字段排序
a : affinity 进程绑定在某CPU核心上运行;默认在所有CPU均可运行;
l : 查看选定进程所打开的文件;F5刷新
s : 查看选定进程发起的系统调用;F8自动滚屏 F9停止滚屏
t : ps -eFH 以层级结构显示父子关系;

dstat命令:
非常精巧生成系统资源统计数据;
~]# yum -y install dstat
dstat options [delay [count]]

-c, –cpu: 显示cpu相关信息:
-C #,#,total
-d,–disk: 显示磁盘相关信息:
-D #,#,total
-g 内存页换进换出; 以内存为中心显示数据统计;磁盘至内存;
-m memory
-n interface
-p process 可中断睡眠,不可中断睡眠,3.4
-r io 显示IO请求的相关统计数据;
-s swap的相关统计数据;
-t time

–aio enable aio stats (asynchronous I/O)
–ipc enable ipc stats (message queue, semaphores, shared memory)
–raw enable raw stats (raw sockets)
–socket enable socket stats (total, tcp, udp, raw, ip-fragments)
–tcp enable tcp stats (listen, established, syn, time_wait, close)
–udp enable udp stats (listen, active)
–unix enable unix stats (datagram, stream, listen, active)

expensive 消耗:
–top-bio show most expensive block I/O process
–top-cpu show most expensive CPU process
–top-int show most frequent interrupt
–top-io 最占用IO的进程;
–top-latency: 延迟最大的进程;

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89050

(0)
逆神阳逆神阳
上一篇 2017-11-27 23:13
下一篇 2017-11-27 23:19

相关推荐

  • 马哥教育21期网络班—第五周课程+练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; grep "…

    Linux干货 2016-07-29
  • 第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)     CentOS系统启动流程:     1.加电自检:由bios去检测各硬件是否存在且是否正常运行,然后进行硬件初始化     2.选择启动顺序,加载mbr:根据bios设置的设备启动顺序,…

    2017-07-03
  • 马哥教育网络班21期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@centos ~]# who | awk '{print $1 $NF}'| uniq -d root(192.168.40.1) derulo(19…

    Linux干货 2016-07-22
  • N25-第9周博客作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # 统计登录用户和非登陆用户的个数 # author: han declare -i loginnum=0 declare -i nologinnum=0 whil…

    Linux干货 2017-03-10
  • 0809作业

    4、如何设置tab缩进为4个字符? 在/etc/vimrc中加入一行 set ts=4 保存退出 5、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; :%s@/etc/sysconfig/init@/var/log@g 6、删除/t…

    Linux干货 2016-08-11