sar命令查看历史数据

sar命令查看历史数据,第1张

前言 有的时候,我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因。但是,简单的top,uptime,w等命令只可以查看当前的负载,而无法查看过去的某一时间段的cpu的负载情况。 下面就介绍一个用于性能分析的命令,其可以用于查看过去的某一时间段的cpu的负载情况(系统性能)。查看某一时间段的cpu使用情况,请直接跳到第七节。一、sar概念 sysstat是Linux 系统中的常用工具包,而sar 是 Linux中sysstat工具包中的用于监控Linux系统性能的工具之一。 sysstat 工具包中包含两种类型的工具:即时查看工具(iostat、mpstat、sar);累计统计工具(sar) 因此sar命令,又叫做系统活动情况报告。不仅可以实时查看服务器的性能,还可以做累计统计。 二、sar可监控的范围 文件的读写情况 系统调用的使用情况 磁盘I/O使用情况 CPU的使用统计 内存使用状况 进程活动 IPC有关的活动 三、sar命令使用环境 sar命令使用格式: sar+ 命令行选项(可选) + 间隔时间(可选) + 次数(可选) 常用来判断一个系统瓶颈问题 查询CPU可用 sar -u 和 sar -q 等来查看查询内存可用 sar -B、sar -r 和 sar -W 等来查看查询io可用 sar -b、sar -u 和 sar -d 等来查看 四、sar命令累计统计的实现过程 系统会通过调用 /usr/lib64/sa/ 中的三个工具(sa1 sa2 sadc)来实现,周期地记录当时的系统性能的信息的功能。 sa1 :收集并将每天的系统性能的信息写入一个二进制的文件中,它是sadc的前端程序 sa2 :收集每天的系统活跃的信息并写入总结性的文件中,其作为 sar的前端程序 sadc :收集系统的动态数据的数据并写入一个二进制的文件中,其作为 sar 工具的后端 五、sar的日志 sar是由有类似日志切割的功能的,它会依据/etc/cron.d/sysstat中的计划任务,将日志放入/var/log/sa/中 注:日志为二进制文件,不可使用more、less、vim工具查看,必须使用sar或sadf 可以根据需求修改该计划任务 如要查看某一时间段的服务器的性能的其中一个方法就是:使用sar命令,查看当天的日志文件 sar -f /var/log/sa/sa15 [root@    lib64]#sar-f/var/log/sa/sa15Linux3.10.0-327.el7.x86_64(ops-node7)07/15/2018_x86_64_(24CPU)12:00:01AMCPU%user%nice%system%iowait%steal%idle12:10:01AMall1.350.000.850.120.0097.6712:20:01AMall1.320.000.860.110.0097.7112:30:02AMall1.370.000.870.110.0097.6512:40:01AMall1.320.000.910.110.0097.6612:50:01AMall1.350.000.890.110.0097.6501:00:01AMall1.360.000.870.110.0097.6601:10:01AMall1.360.000.850.110.0097.6801:20:01AMall1.350.000.890.100.0097.6601:30:01AMall1.320.000.890.110.0097.6801:40:01AMall1.290.000.950.110.0097.6501:50:01AMall1.350.000.880.120.0097.6402:00:01AMall1.340.000.880.110.0097.6802:10:01AMall1.330.000.900.110.0097.6502:20:01AMall1.360.000.870.120.0097.6502:30:01AMall1.350.000.850.120.0097.6802:40:01AMall1.410.000.920.120.0097.5602:50:01AMall1.570.000.950.130.0097.3503:00:01AMall4.210.000.810.160.0094.8103:10:01AMall2.500.000.870.130.0096.5003:20:01AMall1.370.000.870.120.0097.6503:30:01AMall1.360.000.950.130.0097.5603:40:01AMall1.480.000.970.240.0097.3003:50:01AMall1.350.010.910.130.0097.6004:00:01AMall1.390.000.950.190.0097.4704:10:01AMall1.360.000.990.130.0097.52 注意: sar查看性能或其日志时,使用的12/24小时制;日志的切割是昨天晚上12点到今天12点为一天;默认只保留一个月的日志 六、sar命令参数及输出项详解 【1】格式 用法:sar + 选项 + 时间间隔(可选) + 次数 (可选) interval: 取样周期,单位是秒count:取样次数,默认值为1options:命令行选项 【2】常用选项 -A          所有报告的总和-B          输出内存页面的统计信息-b          输出I/O和传送速率的统计信息-C          输出进程统计信息及每秒创建的进程数-d          输出每一个块设备的活动信息-H          输出交换空间利用率信息-h          输出帮助信息-p          输出友好设备名字,以方便查看,常与-d和-n参数结合使用-q          输出进程队列长度和系统平均负载状态统计信息-R          输出内存页面的统计信息-r          输出内存和交换空间的统计信息-S          输出交换空间利用率信息-t          读取 /var/log/sa/下的某日志的数据时显示其中记录的原始时间-u          输出整体CPU使用情况的统计信息-V          输出版本信息-v          输出内核表状况统计信息(inode、文件和其他内核表的统计信息)-W          输出系统交换的统计信息-w          输出任务创建与系统转换统计信息-y          输出终端设备的活动信息-----------I          输出指定中断的统计信息,后方可加参数{...|SUM|ALL|XALL}  ...          指定中断号SUM          指定输出每秒接收到的中断总数ALL          指定输出前16个中断XALL        指定输出全部的中断信息-----------P          输出指定的部分的CPU的统计信息,后方可加参数{cpu|ALL}cpu          指定cpuALL          输出单个和整体cpu的统计数据-----------n          输出网络设备(网卡)状态统计信息,后方可加参数{DEV|EDEV|NFS|NFSD|SOCK|ALL}    DEV          输出网络设备的统计信息EDEV        输出网络设备的错误统计信息NFS          输出NFS客户端的活动统计信息NFSD        输出NFS服务器的活动统计信息SOCK        输出网络套接字的使用统计信息ALL          输出所有类型的网络活动统计信息-----------f          从文件中读取数据信息。一般读取sar日志,也可读取-o选项生成的文件,后方要加文件名-o          将sar的输出信息保存到文件中,后方要加文件名-i          指定间隔时长,单位为秒-s          指定输出统计数据的起始时间(格式为hh:mm:ss;例如01:00:00)  -e          指定输出统计数据的截至时间,通常与-S选项连用。无数值时默认为18:00:00(格式为hh:mm:ss;例如09:00:00) 【3】输出项 <1>cpu的输出 sar -u %usr              CPU在用户模式下,执行进程的时间百分比 %nice              CPU在用户模式下,用于nice *** 作,所占用CPU总时间的百分比 %system            CPU处在系统模式(内核态)下,执行进程的时间百分比 %iowait            CPU用于等待I/O *** 作完成(等待输入输出完成),占用CPU总时间的百分比 %steal            管理程序为另一个虚拟进程提供服务而等待虚拟CPU的百分比%idle              CPU空闲时间百分比 注意: 如果%iowait的值过高,表示硬盘存在I/O瓶颈 如果%idle值高,表示CPU较空闲如果%idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 如果%idle 的值持续低于10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU <2>I/O和传送速率输出 sar -b tps                每秒向磁盘设备请求数据的次数,包括读、写请求,其为rtps与wtps的和。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求,这里tps指请求合并后的请求计数rtps              每秒向磁盘设备的读请求次数 wtps              每秒向磁盘设备的写请求次数 bread/s            每秒钟从物理设备读入的数据量,单位为 块/s bwrtn/s            每秒钟向物理设备写入的数据量,单位为 块/s <3>设备使用情况输出 sar -d DEV                磁盘设备,加上用参数-p可以打印出sda等磁盘设备名称;如不加参数-p,设备则显示为dev253-0等tps                每秒向磁盘设备请求数据的次数,包括读、写请求,其为rtps与wtps的和。每一次IO下发后会先将多个请求合并为一个I/O磁盘请求,这里tps指请求合并后的请求计数rd_sec/s          每秒读扇区的次数wr_sec/s          每秒写扇区的次数avgrq-sz          平均每次设备I/O *** 作的数据大小(扇区)avgqu-sz          磁盘请求队列的平均长度await              从请求磁盘到系统处理完,每次请求的平均消耗时间,包括请求队列等待时间(单位是毫秒)svctm              系统处理每次请求的平均时间,不包括在请求队列中消耗的时间%util              I/O请求占CPU的百分比 <4>网络设备统计信息输出 sar -n EDEV IFACE              网络设备名rxpck/s            每秒接收的包数量txpck/s            每秒传输的包数量rxbyt/s            每秒接收的字节数(单位为byte)txbyt/s            每秒传输的字节数(单位为byte)rxkB/s            每秒收的数据量(单位为kB)txkB/s            每秒发的数据量(单位为kB)rxcmp/s            每秒接收压缩包的数量txcmp/s            每秒传输压缩包的数量rxmcst/s          每秒接收的多播(multicast)包的总数排查网络设备故障 <5>网络设备故障信息输出 EDEV |egrep ‘eth0|IFACE’ (本次指定了网卡etho0,可填入其他网卡) IFACE网络设备名rxerr/s每秒接收的坏包数量txerr/s传输包时每秒发生错误的数量coll/s传输包时每秒发生冲突的数量rxdrop/s接收包时,每秒丢弃的包的数量(缺乏缓存导致)txdrop/s传输包时,每秒丢弃的包的数量(缺乏缓存导致)txcarr/s传输包时,每秒发生的传输错误的数量rxfram/s接收包时,每秒发生帧校验错误的数量rxfifo/s接收包时,每秒钟缓冲区溢出错误的数量txfifo/s传输包时,每秒钟缓冲区溢出错误的数量 <6>内存分页状态输出 sar -B pgpgin/s每秒从磁盘空间或交换空间置换到内存的字节数(单位为KB)pgpgout/s每秒从内存置换到磁盘空间或交换空间的字节数(单位为KB)fault/s每秒钟系统产生的缺页数(主缺页加次缺页)majflt/s每秒钟产生的主缺页数pgfree/s每秒被放入空闲队列中的页个数pgscank/s每秒被kswapd扫描的页个数pgscand/s每秒直接被扫描的页个数pgsteal/s每秒钟从cache中被清除来满足内存需要的页个数%vmeff每秒清除的页占总扫描页的百分比 <7>进程队列长度和平均负载状态输出 sar -q runq-sz          运行队列的长度,等待运行的进程数量 plist-sz        进程列表中进程和线程的数量 ldavg-1          最后1分钟的系统平均负载 ldavg-5          过去5分钟的系统平均负载 ldavg-15        过去15分钟的系统平均负载 <8>内存和交换空间状态输出 sar -r kbmemfree空闲的内存数量(单位为KB)kbmemused已使用的内存数量,不包含内核使用的内存(单位为KB)%memused已使用内存的百分数kbbuffers内核缓冲区buffer,使用的内存数量(单位为KB)kbcached内核高速缓存cache数据使用的内存数量(单位为KB)kbcommit保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)%commitkbcommit与所有内存总量的百分比 <9>系统交换活动信息输出 sar -W pswpin/s          每秒系统换入的交换页面数量 pswpout/s          每秒系统换出的交换页面数量 七、sar使用实例-查看某一时间段的情况 <1>查看凌晨1点到3点的cpu sar -s 01:00:00 -e 03:00:00 <2>查看凌晨1点到3点的系统的平均负载 若要看某时间段其他性能,加上对应选项 sar -s 01:00:00 -e 03:00:00 -q <3>查看本月3号的cpu 注意: 该 *** 作需要去查看sar的日志(第五节已经介绍一次) 默认只保存一个月的 sar查看性能或其日志时,注意自己的使用的是12还是24小时制 日志的切割是昨天晚上12点到今天12点为一天 cd/var/log/sa/sar -f sa03

1选择

1.1一个文件的名字为rr.Z,可以用来解压缩的命令时()

tar

gzip

compress

uncompress

1.2可以结束进程命令()

kill

ctrl+c

shutdown

halt

1.3 Linux下对文件进行归档的命令为:(多选)

dd

tar

zip

unzip

1.4 Linux查当前目录下30天以前的文件并移动到/dev/null下的命令:(多选)

find.-mtime 30-type f xargs mv{}/dev/null

find.-mtime+30-type xargs mv{}/dev/null

find.-mtime+30-type f-exec mv{}/dev/null

find.-mtime+30-type f-exec rm–rf{}

1.5 dstat与下面哪个命令类似

vmstat

sar

iotop

abc

1.6 rpm安装软件的参数

rpm-ivh

rpm-Ivh

rpm-Uvh

rpm-Iuvh

1.7 yum升级软件包选项

rpm-uvh

rpm-Uvh

1.8查看网络流量命令是?

iftop

nsload

ifstatd

以上命令全可以

1.9停止进程的命令,除了kill还有谁?

pkill

killa

allkill

以上命令都不正确

1.10服务器之间传文件的命令有?

wget

scp

ftp

以上命令都可以

1.11对文件进行归档的命令为

dd

cpio

gzip

tar

1.12在rpm命令中,安装新的rpm包软件使用的参数是()

-i

-v

-h

-e

1.13du命令中,使用友好的方式显示信息的参数是()

-h

-f

-a

-t

1.14将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现如此任务的tar命令格式___

tar zxvf/home/stud1/wang.tar.gz/home/wang

tar xcvf/home/stud1/wang/home/wang

tar zcv/home/stud1/wang/home/wang

tar zcvf/home/stud1/wang/home/wang.tar.gz

1.15终止一个前台进程可能用到的命令和 *** 作()A:kill

B:CTRL+C

C:shutdown

D:halt

1.16关闭Linux系统(不重新启动)可使用命令()

A:Ctrl+Alt+Del

B:halt

C:shutdown-r now

D:reboot

1.17下列提法中,不属于ifconfig命令作用范围的是__

A:配置本地环回地址

B:配置网卡的IP地址

C:激活网络适配器

D:加载网卡到内核中

1.18有关归档和压缩命令,下面描述正确的是()

A:用uncompress命令解压缩由compress命令生成地后缀为.zip的压缩文件

B:upzip命令和gzip命令可以解压相同类型文件

C:tar归档其压缩的文件可以有gzip命令解压缩

D:tar命令归档后的文件也是一种压缩文件

1.19终止一共前台进程可能用到的命令和 *** 作

kill

ctrl+c

shut down

halt

1.22为了将当前目录下的归档文档myftp,tar解压缩到/tmp目录下,用户可以使用命令

tar xvzf myftp.tgz-C/tmp

tar xvzf myftp.tgz-R/tmp

tar vzf myftp.tgz-X/tmp

tar xvzf myftp.tgz/tmp

1.23下面有关linux查看系统负载的命令,说法错误的是?

uptime命令主要用于获取主机运行时间和查询linux系统负载等信息

vmstat命令可以查看cpu负载

sar命令可以查看网络接口信息

free命令可以查看磁盘负载情况

1.24以下哪些方式/命令不可以查看某ip是否可达?

telnet

ping

tracert

top

1.25 tar命令用于解压的参数是?-v-x-c-f

1.26下面哪个命令不是用来查看网络故障?

telnet

ping

init

netstat

1.28为了知道谁在正注册到你的机器上,可以用命令:___

Who users finger ping

1.29查看本网段其他计算机的MAC地址,可先ping对方主机,然后

arp-g

arp-n

arp-a

arp-d

1.3014日下午2点date+%y%m%d%H%M输出的时间是什么

201711141212

1711141212

2017111412

201711021212

1.31以下哪个命令可以得出1487进程的线程运行情况()

top-Hp 1487

top-Pp 1487

ps-mp 1487

sat-p 1487

1.32从/home/oracle下搜索一个日志文件alert.log,以下哪种方式可达到目的()

find/home./oracle-name alert.log

locate alert.log

find./-mtime 7 alert.log

find/home/oracle-exec alert.log

1.34以下哪些命令可以用来测试网络中特定主机的80端口是否可以访问()

Ping telnet netstat lsof

2填空

2.1测试网络中主机的连通性用什么命令

2.2如何查看numa是否关闭_**_

2.3将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现如此任务的tar命令格式_**

2.4某个进程使用端口7001,如何快速找到该进程的PID

2.5结束后台进程的命令是**_**

2.6将/home/studl/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此存到/home目录下,实现此任务的tar命令格式******__******

2.7 ping100个包的命令——

2.8 linux下,解压缩bz2格式文件的命令是**_**

2.9 linux下,查看网络连接状态的命令是**___**

2.10Linux查看文件系统的命令为__,显示目录或文件占用磁盘的命令为___

2.11通常我们测试网络连通性使用的ping命令,它是通过____协议进行工作的

2.12简述下列命令的各自作用

nslookup

dig

top

traceroute

2.13将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此问价保存到/home目录下,实现此任务的tar命令格****_****

2.14Linux系统查看进程数的命令___

2.15Linux系统查看系统内存的命令:____,**__**

2.16Linux系统查看cpu使用率的命令:____,**__**

2.17Linux系统查看硬盘空间使用率的命令:___

2.18Linux系统将某一文件下的所有.log文件进行打包压缩,命令为___

2.19Linux常用的性能监控命令是:_、_、_、_、_、_等

2.20假设output程序可能输出标准输出和标准错误,请写出一条命令把这两者都忽略__

2.21 rpm软件包安装命令**_**

3简答

3.1查看硬盘结构显示的命令?查看文档命令?编辑文档命令?

3.2配置网络环境的命令,手工修改IP,主机名,DNS和网关

3.3有压缩包a.tar.gz,如何解压该包?如何不解压该包,如何查看该包的内容?

3.4某进程abcd在系统中起了很多,数量难以统计,造成系统负荷较高,如何一条命令确保将此进程全部杀掉

3.5某日志路径是/data/logs/a.txt,如何跟踪该日志,以查看当时的运行状态?

3.6 dmesg命令显示的是哪方面信息

3.7寻找名称为mytest.log的文件

3.8写出du-sh与df-h的区别

3.9查看当前linux服务器是否监听80端口,如果监听,请找出其进程ID,并结束该进程。

3.10使用curl或者wget获取http服务的header信息。

3.11写出查看linux系统性能的命令,如cpu、内存、流量、io等

3.12解释下列命令的意思

dd if=/dev/random of=/dev/sda

3.13如何查看占用端口8080的进程

3.14查着占用内存最多的进程

3.15压缩和解压缩目录/opt/gjsy/所有文件命令

3.16Linxu系统下如何查看8080端口上运行的程序状态

3.17ps aux中的VSZ代表什么意思,RSS代表什么意思?

3.18PING是使用TCP/IP协议中的**_**协议

3.19写出网络故障排查常用的命令**__**

3.20写出你常用的网络抓包工具,软件名称**__**

3.21将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式___

3.22解释该命令的含义:nohup zcat test.gz|grep"x6game">~/log.txt

2>/dev/null&

3.23查看系统硬件负载工具或命令有哪些

3.24使用lsof命令查看占用80端口的进程

3.25如何使用CURL测试POST接口

3.26怎样在目录/home/user/training/下找到扩展名为txt的文件

3.27最常用的网络测试命令有什么?

3.28ping的测试结果中都包含哪些部分?

3.29如何找出占用22端口的进程及进程号?

3.30如何删除当前目录(包含字目录)下所有30天以前创建的文件名后缀为.log的文件

3.31以下一些Linux命令的作用分别是什么?

init 0

chkconfig--level 3 sendmail on

tar-czvf test.tar.gz./

chown-R

ln-s/data/log//var/log/sina_log

umount-f/data0

rpm-ivh baihui.rpm

rpm-qf/bin/ls

3.32LINUX常用命令pwd、top、df、ifconfig、cat分别代表什么含义?

3.33linux常用命令:关机、重启、编辑某文档文件、删除某文件、更改 *** 作系统密码命令分别是什么?

3.34请使用命令:删除/backup目录下10天前的普通文件

3.35如何查看服务器当前连接ip的列表

3.36写出liunx系统中diff、chmod、grep、kill、tar五个常用命令的功能

3.37简述tar-cjvf/tmp/test.tar.gz/root命令中错误及错误原因

3.38Linux系统从A服务器测试B服务器一个tcp端口是否联通使用___

3.39写一个脚本查找最后创建时间使3天前,后缀是*.log的文件并删除

3.40linux如何根据进程ID查找启动程序的路径

3.41查看占用swap的进程id

3.42列出linux常见打包工具并写相应解压缩参数(至少三种)

3.43Linux中锁定一个文件用什么命令?他和md5sum有什么区别?

3.44如何在系统中查找所有所属用户为user1的文件

3.45查看某个文件或者文件夹占用磁盘空间大小的命令

3.46如何查看远程linux系统运行了多少时间?我的服务器内存,cpu,硬盘都是多少,系统版本,linux会优先将数据缓存到内存中,我的机器真实内存消耗实际上是多少

3.47查看服务器当前开启了哪些端口?如何查看某服务器是否存在IO压力

3.48如何查看某个文件system.log被哪些进程占用

扩展

1.21在退出unix系统账户之后还需要继续运行某个进程,那么可用()

awk sed crontab nohup screen

1.20使用trace命令的目的是()

可用的,十分成功的测试手段

非常基本的测试手段

把IP地址和DNS加入路由表中

在源到目标传输的过程中查找失散点

1.27哪个变量用来指定一个远程x应用程序将输出放到哪个x server上

TERM

DISPLAY

ECHO

OUTPUT

1.33P系列服务器被用做文件服务器,所有的用户文件存都放在一非rootvg的文件系统上,用什么方法可以快速备份和恢复这些数据和文件系统的定义()

tar

cpio

savefs

savevg

1.查看系统负载

(1)uptime

这个命令可以快速查看机器的负载情况。

在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。

命令的输出,load average表示1分钟、5分钟、15分钟的平均负载情况。

通过这三个数据,可以了解服务器负载是在趋于紧张还是趋于缓解。

如果1分钟平均负载很高,而15分钟平均负载很低,说明服务器正在命令高负载情况,需要进一步排查CPU资源都消耗在了哪里。

反之,如果15分钟平均负载很高,1分钟平均负载较低,则有可能是CPU资源紧张时刻已经过去。

(2)W

Show who is logged on and what they are doing.

可查询登录当前系统的用户信息,以及这些用户目前正在做什么 *** 作

其中的load average后面的三个数字则显示了系统最近1分钟、5分钟、15分钟的系统平均负载情况

注意:

load average这个输出值,这三个值的大小一般不能大于系统逻辑CPU的个数。

如果输出中系统有4个逻辑CPU,如果load average的三个值长期大于4时,说明CPU很繁忙,负载很高,可能会影响系统性能,

但是偶尔大于4时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲

2.dmesg | tail

该命令会输出系统日志的最后10行。

这些日志可以帮助排查性能问题.

3.vmstat

vmstat Virtual Meomory Statistics(虚拟内存统计),用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况。

后面跟的参数1,表示每秒输出一次统计信息,表头提示了每一列的含义

(1)监控进程procs:

r:等待在CPU资源的进程数。

这个数据比平均负载更加能够体现CPU负载情况,数据中不包含等待IO的进程。如果这个数值大于机器CPU核数,那么机器的CPU资源已经饱和(出现了CPU瓶颈)。

b:在等待io的进程数 。

(2)监控内存memoy:

swpd:现时可用的交换内存(单位KB)

free:系统可用内存数(以千字节为单位)

buff: 缓冲去中的内存数(单位:KB)。

cache:被用来做为高速缓存的内存数(单位:KB)。

(3)监控swap交换页面

si: 从磁盘交换到内存的交换页数量,单位:KB/秒。

so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

如果这个数据不为0,说明系统已经在使用交换区(swap),机器物理内存已经不足。

(4)监控 io块设备

bi: 发送到块设备的块数,单位:块/秒。

bo: 从块设备接收到的块数,单位:块/秒。

(5)监控system系统

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

cs: 每秒的环境(上下文)转换次数。

(6)监控cpu中央处理器:

us:用户进程使用的时间 。以百分比表示。

sy:系统进程使用的时间。 以百分比表示。

id:中央处理器的空闲时间 。以百分比表示。

us, sy, id, wa, st:这些都代表了CPU时间的消耗,它们分别表示用户时间(user)、系统(内核)时间(sys)、空闲时间(idle)、IO等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。

这些CPU时间,可以让我们很快了解CPU是否出于繁忙状态。

注:

如果IO等待时间很长,那么系统的瓶颈可能在磁盘IO。

如果用户时间和系统时间相加非常大,CPU出于忙于执行指令。

如果有大量CPU时间消耗在用户态,也就是用户应用程序消耗了CPU时间。这不一定是性能问题,需要结合r队列,一起分析。

4.mpstat -P ALL 1

该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。

MultiProcessor Statistics的缩写,是实时系统监控工具

其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

格式:mpstat [-P {|ALL}] [internal [count]]

-P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值

internal 相邻的两次采样的间隔时间

count 采样的次数,count只能和delay一起使用

all : 指所有CPU

%usr : 显示在用户级别(例如应用程序)执行时CPU利用率的百分比

%nice :显示在拥有nice优先级的用户级别执行时CPU利用率的百分比

%sys : 现实在系统级别(例如内核)执行时CPU利用率的百分比

%iowait : 显示在系统有未完成的磁盘I/O请求期间CPU空闲时间的百分比

%irq : 显示CPU服务硬件中断所花费时间的百分比

%soft : 显示CPU服务软件中断所花费时间的百分比

%steal : 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比

%guest : 显示运行虚拟处理器时CPU花费时间的百分比

%idle : 显示CPU空闲和系统没有未完成的磁盘I/O请求情况下的时间百分比

系统有两个CPU。如果使用参数 -P 然后紧跟CPU编号得到指定CPU的利用率。

( Ubuntu安装: apt-get install sysstat)

5.pidstat 1

pidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态

6.iostat -xz 1

iostat命令主要用于查看机器磁盘IO情况

r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。

await:IO *** 作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际 *** 作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。

avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。

%util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO *** 作平均等待时间)。如果到达100%,说明硬件设备已经饱和。

注:如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能

7.free -m

free命令可以查看系统内存的使用情况,-m参数表示按照兆字节展示。

最后两列分别表示用于IO缓存的内存数,和用于文件系统页缓存的内存数。

注:

第二行-/+ buffers/cache,看上去缓存占用了大量内存空间。这是Linux系统的内存使用策略,尽可能的利用内存,如果应用程序需要内存,这部分内存会立即被回收并分配给应用程序。

如果可用内存非常少,系统可能会动用交换区(如果配置了的话),这样会增加IO开销(可以在iostat命令中提现),降低系统性能。

8.sar -n DEV 1

sar命令在这里可以查看网络设备的吞吐率。

在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。

9.sar -n TCP,ETCP 1

sar命令在这里用于查看TCP连接状态,其中包括:

active/s:每秒本地发起的TCP连接数,既通过connect调用创建的TCP连接;

passive/s:每秒远程发起的TCP连接数,即通过accept调用创建的TCP连接;

retrans/s:每秒TCP重传数量;

TCP连接数可以用来判断性能问题是否由于建立了过多的连接,进一步可以判断是主动发起的连接,还是被动接受的连接。TCP重传可能是因为网络环境恶劣,或者服务器压力过大导致丢包。

10.top

top命令包含了前面好几个命令的检查的内容。比如系统负载情况(uptime)、系统内存使用情况(free)、系统CPU使用情况(vmstat)等。

因此通过这个命令,可以相对全面的查看系统负载的来源。同时,top命令支持排序,可以按照不同的列排序,方便查找出诸如内存占用最多的进程、CPU占用率最高的进程等。

但是,top命令相对于前面一些命令,输出是一个瞬间值,如果不持续盯着,可能会错过一些线索。这时可能需要暂停top命令刷新,来记录和比对数据。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8526162.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存