首页 > 代码库 > 系统命令(十二)

系统命令(十二)

系统命令:free,top,vmstat,iostat,dstat,ps,lsof,sar,uname,logger


12.1.uname

功能:打印系统信息

语法:uname [OPTION]...

常用选项:

-a  打印所有信息

-s  打印内核名称

-n  打印主机名

-r  打印内核发行版

-v  打印内核版本

-m  打印机器硬件名

-p  打印处理器类型

-i  打印硬件平台

-o  打印操作系统

命令比较简单,这里就不做示例了


12.2.logger

功能:一个shell命令接口,通过该接口使用syslog系统日志模块

语法:logger [-isd] [-f file] [-p pri] [-t tag] [-u socket] [message ...]

常用选项:

-i  逐行记录每一次logger的进程ID

-f  指定输出日志到文件

-p  指定输入消息的优先级

-t  添加标签

示例:

[root@localhost log]# logger system rebooted
[root@localhost log]# tail -1o messages
tail: option used in invalid context -- 1
[root@localhost log]# tail -10 messages
Jun  5 09:22:03 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="885" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jun  5 13:45:17 localhost root: system rebooted

12.3.lsof

功能:(list open files)是一个列出当前系统打开文件的工具

常用选项:

-i:监听网络地址,不指定,列出所有。如果指定,有这些选项[protocol][@hostname|hostaddr][:service|port]

-U  列出Unix域socket文件

-p  指定PID

-u  指定用户名或UID所有打开的文件

示例:

[root@localhost scripts]# lsof -i:22  #列出22端口监听进程
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      904 root    3u  IPv4   9105      0t0  TCP *:ssh (LISTEN)
sshd      904 root    4u  IPv6   9109      0t0  TCP *:ssh (LISTEN)
sshd    10458 root    3r  IPv4  42798      0t0  TCP 192.168.19.20:ssh->192.168.19.1:61752 (ESTABLISHED)
sshd    10770 root    3r  IPv4  43930      0t0  TCP 192.168.19.20:ssh->192.168.19.1:63426 (ESTABLISHED)
[root@localhost scripts]# lsof       #列出所有选项

12.4.ps

功能:打印当前终端运行的进程,可以跟grep配合使用

常用选项:

-a  显示所有进程

-u  选择有效的用户ID或名称

-x  显示无控制终端的进程

-e  显示所有进程

-f  全格式

-r  只显示运行的进程

-T  这个终端的所有进程

-p  指定进程ID

--sort  对某列排序

-m  线程

-L  格式化代码列表

-o  用户自定义格式

用法:

ps -ef 打印所有进程的标准语法

ps aux打印系统上所有进程BSD语法

两者区别:

ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同

ps -ef 是用标准的格式显示进程的、其格式如下

[root@localhost scripts]# ps -ef 
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Jun02 ?        00:00:00 /sbin/init
root          2      0  0 Jun02 ?        00:00:00 [kthreadd]
root          3      2  0 Jun02 ?        00:00:00 [migration/0]

其中各列内容意思如下:

UID:用户ID,输出为用户名

PID:进程PID

PPID:父进程ID

C:进程占用CPU的百分比

STIME:进程启动到现在的时间

TTY:该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程

CMD:命令名称和参数

ps aux 是用BSD的格式来显示、其格式如下

[root@localhost scripts]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  19232   224 ?        Ss   Jun02   0:00 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Jun02   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Jun02   0:00 [migration/0]

同ps -ef不同的列有:

USER :用户名 

%CPU:进程占用的CPU百分比 

%MEM:占用内存的百分比 

VSZ:该进程使用的虚拟內存量(KB) 

RSS:该进程占用的固定內存量(KB)(驻留中页的数量) 

STAT:进程的状态 

START:该进程被触发启动时间 

TIME:该进程实际使用CPU运行的时间

其中STAT状态位常见的状态字符有

D:无法中断的休眠状态(通常 IO 的进程)

R:正在运行可中在队列中可过行的

S:处于休眠状态

T:停止或被追踪

W:进入内存交换 (从内核2.6开始无效)

X:死掉的进程 (基本很少见)

Z:僵尸进程 

<:优先级高的进程  

N:优先级较低的进程  

L:有些页被锁进内存

s:进程的领导者(在它之下有子进程)

l:多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)

+:位于后台的进程组


12.5.top

功能:动态实时监控操作系统活动的进程和系统资源利用率

常用选项:

-d  信息刷新时间间隔

-p  只监控指定的进程PID

-i  只显示正在使用CPU的进程

-H  显示线程

-u  只查看指定用户名的进程

-b  将输出编排成易处理格式,适合输出到文件处理

-n  指定最大循环刷新数

交互命令:

f  添加或删除显示的指标

显示命令完全模式


P  按CPU使用百分比排序

M  按驻留内存大小排序

T  按进程使用CPU时间排序

1  显示每个CPU核心使用率

k  终止一个进程

q 退出top命令

s 设置刷新时间间隔

t 显示或隐藏进程和CPU状态信息

m 显示或隐藏内存状态信息

l 显示或隐藏uptime信息

S 累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+

W 保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。

h 帮助命令。

示例:

技术分享

1) top前五行信息:


第一行是任务对列信息

10:23:53      #系统当前时间

up 1:10       #系统运行时间,格式为分

2 users       #当前登录用户数

load average: 0.02, 1.29, 1.72    #系统负载 即任务队列的平均长度,三个数值分别为1分钟 5分钟 15分钟前到现在的平均值


第二三行为进程和cpu信息

当有多个cpu时,这些内容可能会超过两行,内容如下:

Tasks: 252 total 进程总数

2 running 正在运行的进程数

250 sleeping 睡眠的进程数

0 stopped 停止的进程数

0 zombie    僵尸进程数

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

19.1%sy    内核空间占用cpu百分比

0.0%ni    用户进程空间内改变优先级的进程占用cpu百分比(I/O占用)

79.0%id    空闲cpu百分比

1.2%wa 等待输入输出的cpu百分比

0.0%hi

0.0%si

0.0%st


第四五行为内存信息

12078176k total    #物理内存总量

10463024k used    #使用的物理内存总量

1615152k free       #空闲的内存总量

72008k buffers      #用作内核缓存的内存量

swap                     #交换分区总量


2) 进程信息

PID     #进程id

USER  #进程所有者用户名

PR      #优先级

NI nice值  #负值表示高优先级 正值表示低优先级

VIRT   #进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES

RES     #进程使用的 未被换出的物理内存大小 RES=CODE+DATA

SHR    #共享内存大小

S         #进程状态 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU  #上次更新到现在的cpu时间占用百分比

%MEM  #进程使用的物理内存百分比

TIME+   3进程使用的cpu时间总计 单位为1/100秒

COMMAND #命令行/命令名

 

shift+p|P: 按照消耗cpu资源排序

shift+m|M: 按照消耗内存资源排序

shift+t|T: 按照消耗cpu时间排序

 

# top -b -n1 直接打印一次输出结果到屏幕
top -u apache
top -u mysql   只查看有效用户名为mysql的进程
# top -d 5 更新延时设置为5秒(默认3秒)
# top -u mysql 只查看有效用户名为mysql的进程
# top -p 200,2000 只查看进程200和2000
# top -n 8 退出前屏幕再刷新10次
# top -b 以非交互和非全屏模式运行
# top -b -n 12000 > plog 运行top并记录命令输出,时长10小时,保存到plog文件

12.6.free

功能:监控linux内存使用状态

常用选项:

-b  bytes显示

-k  KB显示

-m  M显示

-g  G显示

-h  易读单位显示

-s  每几秒重复打印

-c  重复打印几次退出

示例:

[root@localhost scripts]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        188        791          0         10        110
-/+ buffers/cache:         66        913
Swap:         1983          2       1981

空闲内存是:free+buffers+cached=911M

一般来说空闲内存物理内存 >70% ,内存性能优;如果小于 20% ,则性能差,需要添加内存。

下面是对这些数值的解释:

第二行(mem):

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

第四行就不多解释了。

区别:

第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。

从使用角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是791m,已用内存是188m,其中包括,内核(OS)使用+Application(X,oracle,etc)使用的+buffers+cached.

第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free(free+buffers+cached.)


12.7.vmstat

功能:显示关于系统各种资源之间相关性能的简要信息

常用选项:

-a  打印活跃和非活跃的内存

-d  打印硬盘相关统计信息

-D  打印硬盘表信息

-p  打印指定硬盘分区统计信息

-s  打印内存相关统计信息及多种系统活动数量

-m  打印slabinfo

-t  添加时间戳到输出

-S  显示单位,默认k、KB、m、M,大写是*1024


通过分析以下这些文件来过的打印信息

/proc/meminfo

/proc/stat

/proc/*/stat

示例:

[root@localhost scripts]# vmstat  #显示虚拟内存使用情况
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0   2876 810916  11236 113644   75   58    77   132   14   17  0  0 100  0  0

参数说明:

procs:进程

有r和b

r:运行队列进程数量,如果数值长期大于1,考虑是否增加cpu

b:等待的I/O进程数量


memory:内存

swpd:使用虚拟内存大小

free:空闲物理内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小


swap

si: 每秒从交换区写到内存的大小,由磁盘调入内存

so: 每秒写入交换区的内存大小,由内存调入磁盘


如果 si 和 so 数值很大的话,可能是出现系统资源紧缺。


IO

bi: 每秒读取的块数  (单位kb)

bo: 每秒写入的块数


system(系统)

in: 每秒中断数

cs: 每秒上下文切换数

说明:


2个值越大,cpu消耗时间越大


cpu

sy: 内核系统进程执行时间比例

wa:IO等待时间比例

id: 空闲时间比例

root@localhost log]# vmstat 3  #每三秒显示一次内存信息
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   2632 807540  13856 116396   74   57    76   130   13   17  0  0 100  0  0
 0  0   2632 807508  13864 116396    0    0     0     9   13   12  0  0 100  0  0
[root@localhost log]# vmstat 3 3   #每三秒显示一次,连续显示三次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   2632 807680  13864 116396   74   57    76   130   13   17  0  0 100  0  0
 0  0   2632 807640  13864 116396    0    0     0     0   10    8  0  0 100  0  0
 0  0   2632 807640  13864 116396    0    0     0     0   11   10  0  0 100  0  0
[root@localhost log]# vmstat -d   #显示磁盘信息
[root@localhost log]# vmstat -a   #显示活跃内存与非活跃内存
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0   2632 807556  47292  88784   74   57    75   130   13   17  0  0 100  0  0
[root@localhost log]# vmstat -f  #系统被fork多少次
        11395 forks
[root@localhost log]# vmstat -p /dev/sda1  #查看指定磁盘设备
sda1          reads   read sectors  writes    requested writes
                 440       3420         13         44

参数说明:

reads:       分区读的次数。

read sectors:    分区读扇区的次数。

writes:       分区写的次数。

requested writes:    分区写请求次数。


12.8.iostat

功能:报告CPU利用率和磁盘I/O

常用选项:

-c  显示CPU使用率

-d  只显示磁盘使用率

-k  单位KB/s代替Block/s

-m  单位MB/s代替Block/s

-N  显示所有映射设备名字

-t  打印报告时间

-x  显示扩展统计信息

示例:

[root@localhost log]# iostat
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain)     06/05/2017     _x86_64_    (1 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.19    0.26    0.00   99.55
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.72       150.32       221.48   35498086   52300020
sdb               0.05         0.02        37.39       5122    8829032
dm-0             13.51         2.75       107.60     649290   25407952
dm-1             32.68       147.55       113.88   34842912   26891976
dm-2              4.68         0.01        37.39       2962    8828952

参数说明:

avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值

Device: 各磁盘设备的IO统计信息

Device: 以sdX形式显示的设备名称

tps: 每秒进程下发的IO读、写请求数量

Blk_read/s: 每秒读扇区数量(一扇区为512bytes)

Blk_wrtn/s: 每秒写扇区数量

Blk_read: 取样时间间隔内读扇区总数量

Blk_wrtn: 取样时间间隔内写扇区总数量

#显示更详细的io统计信息
[root@localhost log]# iostat -x -k -d 1 2   #启动-x,显示扩展信息,每一秒一次,联系两次
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda              16.08    27.35    2.41    0.31    75.09   110.63   136.51     0.03   12.46    1.52   97.70   1.41   0.38
sdb               0.00     4.62    0.00    0.05     0.01    18.68   743.99     0.01  108.28    1.67  114.25   6.12   0.03
dm-0              0.00     0.00    0.06   13.44     1.37    53.75     8.17     1.45  107.58   12.21  108.03   0.09   0.12
dm-1              0.00     0.00   18.43   14.22    73.70    56.88     8.00     2.22   67.96    1.26  154.37   0.10   0.32
dm-2              0.00     0.00    0.00    4.67     0.01    18.68     8.00     0.60  127.80    2.70  127.84   0.07   0.03

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

wrqm/s: 每秒对该设备的写请求被合并次数

r/s: 每秒完成的读次数

w/s: 每秒完成的写次数

rkB/s: 每秒读数据量(kB为单位)

wkB/s: 每秒写数据量(kB为单位)

avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

avgqu-sz: 平均等待处理的IO请求队列长度

await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

svctm: 平均每次IO请求的处理时间(毫秒为单位)

%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

 

12.9.sar

功能:查看系统资源综合方面利用率,可以对每个方面进行单独的统计,但是增加了系统开销,但是对系统的统计结果不会有很大影响

语法:sar [options] [-A] [-o file] t [n]

t为采样间隔,n为采样次数,默认值是1

常用选项:

-A     所有报告的总和

-u  打印cpu使用情况统计信息

-v     打印inode、文件和其他内核表的统计信息

-d     打印每一个块设备的活动信息

-r  打印内存和交换分区的使用率的

-b  打印I/O和传送速率的统计信息

-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息

示例:

#查看cpu使用率
[root@localhost scripts]# sar -u -o test 2 3  #每两秒采一次,连续三次,并将结果以二进制形式存入
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
03:42:25 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:42:27 PM     all      0.00      0.00      1.00      0.50      0.00     98.50
03:42:29 PM     all      0.00      0.00      1.03      0.00      0.00     98.97
03:42:31 PM     all      0.50      0.00      3.00      0.00      0.00     96.50
Average:        all      0.17      0.00      1.68      0.17      0.00     97.98
[root@localhost scripts]# sar -u -f test  #查看test文件
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
03:42:25 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:42:27 PM     all      0.00      0.00      1.00      0.50      0.00     98.50
03:42:29 PM     all      0.00      0.00      1.03      0.00      0.00     98.97
03:42:31 PM     all      0.50      0.00      3.00      0.00      0.00     96.50
Average:        all      0.17      0.00      1.68      0.17      0.00     97.98

各参数说明:

CPU:all为CPU的平均值。

%user:用户级别下消耗的 CPU 总时间比例。

%nice:nice改变了进程调度优先级的进程,所占用 CPU总时间比例。

%system:在系统模式下消耗 CPU总时间比例。

%iowait:cpu等待I/O操作占用 CPU总时间的比例。

%steal:运用虚拟化技术时,等待其他虚拟进程提供服务而等待虚拟 CPU 的百分比。

%idle: CPU空闲时间占用 CPU总时间比例。

 

说明:

1. %iowait的值过高,硬盘存在I/O瓶颈

2. %idle的值高但系统响应慢时,是 CPU等待分配内存,此时应加大内存容量

3.%idle的值持续低于1,CPU处理能力相对较低,需要解决的资源是 CPU。

#打印内存和交换内存使用情况
[root@localhost scripts]# sar -r 2 3  #每两秒才一次,连续采样3次
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
03:31:58 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
03:32:00 PM    804296    200052     19.92     13656    116392     52712      1.74
03:32:02 PM    804172    200176     19.93     13660    116396     52712      1.74
03:32:04 PM    804172    200176     19.93     13660    116396     52712      1.74
Average:       804213    200135     19.93     13659    116395     52712      1.74

各参数使用说明:

kbmemfree:空闲物理内存

kbmemused:使用中的物理内存

%memused:物理内存使用率

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

kbcommit:意思就是应用程序使用内存的大小

%commit:就是应用程序使用内存百分比。



由上面 2 行就可以看出系统目前的内存使用情况。

kbmemfree :空闲物理内存的大小。

kbmemused :已经使用物理内存的大小。

一般这个命令是没有安装的

[root@localhost scripts]# yum install -y sysstat   #yum安装即可
#inode文件及其他内核情况
[root@localhost scripts]# sar -v 2 3  #每两秒采一次,连续采三次
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain)     06/05/2017     _x86_64_    (1 CPU)
03:51:54 PM dentunusd   file-nr  inode-nr    pty-nr
03:51:56 PM      8391       288     11729         2
03:51:58 PM      8391       288     11729         2
03:52:00 PM      8391       288     11729         2
Average:         8391       288     11729         2

参数说明:

dentunusd:目录高速缓存中未被使用的条目数量

file-nr:文件句柄(filehandle)的使用数量

inode-nr:索引节点句柄(inodehandle)的使用数量

pty-nr:使用的pty数量

#I/o及速率情况:
[root@localhost scripts]# sar -b 2 3
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
03:54:17 PM       tps      rtps      wtps   bread/s   bwrtn/s
03:54:19 PM      0.00      0.00      0.00      0.00      0.00
03:54:21 PM      0.00      0.00      0.00      0.00      0.00
03:54:23 PM      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00

参数说明:

tps:每秒钟物理设备的 I/O传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s

#打印平均负荷
[root@localhost scripts]# sar -q 2 3
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain)     06/05/2017     _x86_64_    (1 CPU)
03:55:45 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
03:55:47 PM         0        84      0.02      0.01      0.00
03:55:49 PM         0        84      0.02      0.01      0.00
03:55:51 PM         0        84      0.02      0.01      0.00
Average:            0        84      0.02      0.01      0.00

参数说明:

runq-sz:等待运行的进程数

plist-sz:进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(Systemload average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

#打印页面交换信息
[root@localhost scripts]# sar -W 2 3
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain) 06/05/2017 _x86_64_(1 CPU)
03:56:52 PM  pswpin/s pswpout/s
03:56:54 PM      0.00      0.00
03:56:56 PM      0.00      0.00
03:56:58 PM      0.00      0.00
Average:         0.00      0.00

参数说明:

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量


#设备使用情况
[root@localhost scripts]# sar -d 2 3 -p
Linux 2.6.32-504.el6.x86_64 (localhost.localdomain)     06/05/2017     _x86_64_    (1 CPU)
03:58:12 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
03:58:14 PM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:58:14 PM       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:58:14 PM VolGroup-lv_root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:58:14 PM VolGroup-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
03:58:14 PM VolGroup-lv01      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

参数说明:

参数-p可以打印出sda,hdc等磁盘设备名称

tps:每秒从物理磁盘I/O的次数

rd_sec/s:每秒读扇区的次数.

wr_sec/s:每秒写扇区的次数.

avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

avgqu-sz:磁盘请求队列的平均长度.

await:从请求磁盘操作到系统完成处理时每次请求的平均消耗时间单位是毫秒(1秒=1000毫秒).

svctm:系统处理每次请求的平均时间

%util:I/O请求占用CPU的百分比

 

1. avgqu-sz的值较低时,设备的利用率较高。

2.当%util的值接近 1%时,表示设备带宽已经占满

 

小结:

要判断系统瓶颈问题,需要几个命令一起查看

CPU问题,sar -u和 sar -q 

内存问题,sar -B、sar -r和 sar -W

I/O问题,sar -b、sar -u 和 sar -d


12.10.dstat

功能:查看系统资源综合方面利用率,可以取代vmstat,iostat,netstat等命令的多功能工具

常用选项:

-c, CPU  打印cpu使用率

-d, disk   打印磁盘使用率

-m, memory(实际内存使用)(包括used,buffer,cache,free值)

-n, net 打印网络情况

-s, swap  打印呢交换分区使用情况

-t:将当前时间打印在第一行

-r:打印I/O统计信息

-l, systemload  打印负载统计量

--tcp, tcp stats  打印常用的tcp统计信息

--udp, udp stats  打印监听的UDP接口极其当前用量的一些动态数据

插件选项:

-–freespace :显示当前磁盘空间使用率

--list  查看支持的插件

--disk-util 打印某一事件磁盘的忙碌状况

--disk-tps

–proc-count :显示正在运行的程序数量

--top-bio     指出块I/O最大的进程

--top-bio-adv  指出块I/O最大的进程,包括pid、r、w

--top-io      打印正常I/O最大的进程

--top-io-adv   打印正常I/O最大的进程,包括pid、r、w

--top-cpu    查看最高使用CPU进程

--top-cpu-adv  查看最高CPU进程

--top-mem    查看最高使用内存进程

特性:

结合了vmstat,iostat,ifstat,netstat

实时显示统计情况

在分析和排障时可以通过启用监控项并排序

模块化设计

使用python编写的,更方便扩展现有的工作任务

容易扩展和添加你的计数器(请为此做出贡献)

包含的许多扩展插件充分说明了增加新的监控项目是很方便的

可以分组统计块设备/网络设备,并给出总数

可以显示每台设备的当前状态

极准确的时间精度,即便是系统负荷较高也不会延迟显示

显示准确地单位和和限制转换误差范围

用不同的颜色显示不同的单位

显示中间结果延时小于1秒

支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形


示例:

[root@localhost log]# yum install -y dstat   #一般系统没有自带

技术分享技术分享

说明:打印所有内存使用情况,而且是动态打印

技术分享

 说明:打印cpu资源消耗的数据

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1932468

系统命令(十二)