tsar输出一天的修改监控时间视频丢失数据,发现丢失了2行的util的数据,为什么会这样。

服务器维护......,给您带来的不便,敬请谅解!Tsar首页、文档和下载 - 系统信息采集和监控工具 - 开源中国社区
当前访客身份:游客 [
当前位置:
Tsar是淘宝的采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等)以及应用数据(如squid haproxy nginx等),tsar支持实时查看和历史查看,方便了解应用和服务器的信息!
它类似于sar,能监控和收集服务器和关键应用的信息,支持实时终端显示和集中式数据库存储查询,还能向Nagios发送报警信息。Tsar模块化的设计利于通过开发新模块来扩展新的功能,非常方便。
1.模块化 Tsar的各个模块专门采集一类数据,通过配置文件和参数支持模块化,用户也可以根据需求编写自己的采集模块,集成到Tsar中即可生效 2.输出方式多样 支持本机查看 支持输出到远程数据库 配合nagios的被动监控,页面显示
授权协议:
开发语言:
操作系统:&Linux&
收录时间: 日&&(国产软件 or 国人参与)
gewehr69 发表于4年前
,最后回答(2个月前):
最新版在centos6.5上安装后执行会出现fgets error:Success错误
:tsar刚试用了下,很不错。推荐~!
:tsar可以监控指定的进程吗?
:以前看过它的代码,写的很干净,淘宝开源的很多软件都不错。。。
:好像挺不错的样子哦.
共有 364 个类似软件
Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远...
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决...
Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发...
ZoneMinder的作者是因為家中的車庫被竊,因而產生設計監控保全的念頭。 ZoneMinder...
MRTG(Multi Router Traffic Grapher)是一套可用来绘出网络流量图的软件,由瑞士奥...
Open-Falcon 人性化的互联网企业级监控系统,Open-Falcon 整体可以分为两部分,即绘...
Hawt IO 是一个新的可插入式 HTML5 面板,设计用来监控 ActiveMQ, Camel, Karaf, ...
Countly 是一个实时的、开源的移动分析应用,通过收集来自手机的数据,并将这些数据...
Zipkin 是 Twitter 的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据...
Ramona 是一个库或者是一个组件使得应用开发者、监控者可以方便构建用来管理应用的...
tsar2db用来收集一个cdn节点内tsar的采集数据,存到mysql数据库,提供给其它应用查...
共有 548 人关注 Tsar您的位置:
Tsar开源:淘宝内部大量使用的系统监控工具
日 02:33:59 | 作者:淘宝 | 来源:GitHub
摘要:Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报...
Tsar是的一个用来收集系统和应用信息的采集报告工具,如收集服务器的系统信息(cpu,mem等),以及应用数据(nginx、swift等),收集到的数据存储在服务器磁盘上,可以随时查询历史信息,也可以将数据发送到nagios报警。
Tsar能够比较方便的增加模块,只需要按照tsar的要求编写数据的采集函数和展现函数,就可以把自定义的模块加入到tsar中。
Tsar目前托管在github上,下载编译安装步骤:
$git clone git:///kongjian/tsar.git
$make install
定时任务配置:/etc/cron.d/tsar,负责每分钟调用tsar执行采集任务;
日志文件轮转配置:/etc/logrotate.d/tsar,每个月会把tsar的本地存储进行轮转;
Tsar配置文件路径:/etc/tsar/tsar.conf,tsar的采集模块和输出的具体配置;
模块路径:/usr/local/tsar/modules,各个模块的动态库so文件;
Tsar刚安装完,还没有历史数据,想要check是否正常,执行tsar -l,查看是否有实时信息输出:
Tsar的配置主要都在/etc/tsar/tsar.conf中,常用的有:
增加一个模块,添加 mod_ on 到配置文件中
打开或者关闭一个模块,修改mod_ on/off
output_stdio_mod 能够配置执行tsar时的输出模块
output_file_path 采集到的数据默认保存到的文件(如果修改的话需要对应修改轮转的配置/etc/logrotate.d/tsar)
output_interface 指定tsar的数据输出目的,默认file保存本地,nagios/db输出到监控中心/数据库中,这两个功能还需要结合其它配置,具体见后面
查看历史数据,tsar
-l/--list 查看可用的模块列表
-l/--live 查看实时数据,tsar -l --cpu
-i/--interval 指定间隔,历史,tsar -i 1 --cpu
--modname 指定模块,tsar --cpu
-s/--spec 指定字段,tsar --cpu -s sys,util
-d/--date 指定日期,YYYYMMDD或者n代表n天前
-C/--check 查看最后一次的采集数据
-d/--detail 能够指定查看主要字段还是模块的所有字段
-h/--help 帮助功能
输出到nagios
配置: 首先配置output_interface file,nagios,增加nagios输出
然后配置nagios服务器和端口,以及发送的间隔时间
####The IP address or the host running the NSCA daemon
server_addr
####The port on which the daemon is running - default is 5667
server_port 8086
####The cycle of send alert to nagios
cycle_time 300
由于是nagios的被动监控模式,需要指定nsca的位置和配置文件位置
####nsca client program
send_nsca_cmd /usr/bin/send_nsca
send_nsca_conf /home/a/conf/amon/send_nsca.conf
接下来指定哪些模块和字段需要进行监控,一共四个阀值对应nagios中的不同报警级别
####tsar mod alert config file
####threshold [hostname.]servicename.w-w-c-
threshold cpu.50;60;70;80;
输出到Mysql
配置: 首先配置output_interface file,db,增加db输出
然后配置哪些模块数据需要输出
output_db_mod mod_cpu,mod_mem,mod_traffic,mod_load,mod_tcp,mod_udpmod_io
然后配置sql语句发送的目的地址和端口
output_db_addr console2:56677
目的地址在该端口监听tcp数据,并且把数据入库即可,可以参照 tsar2db。
Tsar的一个比较好的功能是能够增加自己的采集,这时候需要编写模块代码,编译成so文件即可。
首先安装tsardevel,刚才安装时,如果执行make tsardevel,就会把模块开发的基本文件安装到系统 然后执行tsardevel ,就能在当前模块生成一个模块目录:
[kongjian@v132172.sqa.cm4 tsar]$ tsardevel test
build:make
install:make install
uninstall:make uninstall
[kongjian@v132172.sqa.cm4 tsar]$ ls test
Makefile &mod_test.c &mod_test.conf
按照要求修改mod_test.c中的read_test_stats,set_test_record 完成后make install就完成新模块的配置文件和so的设置,执行tsar --test就能查看效果。
另外也可以通过配置文件对自定义模块传递参数,方法是修改配置文件中的mod_test on myparameter 然后在mod_test.c中的read_test_stats函数中,通过parameter参数就可以获得刚才配置文件中的内容。
[责任编辑:行云之路 ]
正在加载...
我也说几句
汇编一周来国内外网络和IT行业发生的焦点新闻,精挑细选,第一时间推送独家采写的深度报道和热点专题,深入挖掘新闻事件背后的故事,剖析新闻事件的来龙去脉,让读者准确把握业界的发展态势。
汇集存储频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的购买指南,专家博客,皆汇聚在此。
定期为您带来深入权威的网络,交换机,路由器,无线,通信领域信息服务,涵盖产品,技术,新闻,应用案例,评测,购买指南,专栏,技巧等多个方面的信息。与企业网络相关的一切,尽在网络通信邮件,您怎可错过?
新一代数据中心建设管理最新信息快递――聚焦新一代绿色数据中心的设计、建设、运营和管理,汇集业界专家与用户的最精粹观点,展示国内外数据中心经典案例!
定期为您带来安全领域权威专业的产品,技术,新闻,应用案例,评测,购买指南等信息,保护您在网络畅游之时不受病毒的威胁,企业运行之际减少安全的风险。一份邮件在手,一份安全在心!
深入、专业关注云计算相关的技术与实践,范围覆盖私有云建设、公有云服务运营、开源云平台发展、重要云服务商动态等领域,面向企业CIO和IT经理提供深度原创报道,以及云计算、云服务领域最新的市场资讯。
汇集软件频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的企业软件新闻,SOA,SaaS,BI,ERP,开源技术,产品,技巧等全方面的实用资讯。还犹豫什么,这就开始体验一下吧!
深入、专业关注大数据相关的技术与实践,提供Hadoop、NoSQL等领域的最新技术资讯,定期发布由业界专家撰写的大数据专栏文章,面向企业CIO、IT经理、DBA提供深度原创报道,以及大数据领域的最新市场资讯。
汇集服务器频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的服务器虚拟化,刀片服务器,操作系统,大型机,服务器芯片信息,最新最全的服务器技巧,购买指南,专家博客,皆汇聚在此。
网界网网络学院频道,内容涵盖移动互联,技术开发,Web前端,安全,网络通信,云计算,数据中心,存储,服务器,软件等内容。
订阅过的用户,全部取消选择,可取消订阅
热点排行周月
网络世界移动客户端网界网微信订阅号1675人阅读
linux(1)
性能监控工具
在使用Linux过程中,比较头疼的就是系统提供了很多Linux系统监控工具,如何充分合理的使用这些工具,找出系统运行的性能瓶颈,包括CPU,内存,磁盘,网络瓶颈。类似的网上有很多管理员不得不学的20个基本工具。这里就不一一 介绍。这里额外补充几个使用且所见即所得的监控工具,帮助大家能更快的发现问题所在。
系统资源细分
谈到系统性能监控和分析工具,就不得不提Brendan Gregg的系统分析,他的图非常系统化的展示了应用程序,系统调用,内核,协议栈,硬件等各块之间的交互。有兴趣的朋友可以根据这张图里的命令进行组合进行系统问题的监控,分析,定位。
监控工具:tsar
tsar是淘宝自己开发的一个采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。收集到的数据存储在磁盘上,可以随时查询历史信息,输出方式灵活多样,另外支持将数据存储到mysql中,也可以将数据发送到nagios报警服务器。tsar在展示数据时,可以指定模块,并且可以对多条信息的数据进行merge输出,带–live参数可以输出秒级的实时信息。
Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。
框架程序源代码主要在src目录,而模块源代码主要在modules目录中。
框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。
tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar –cron来定时采集信息,并且记录到原始日志文件。
tsar 环境安装指南:
$ wget -O tsar.zip https:///alibaba/tsar/archive/master.zip --no-check-certificate
$ unzip tsar.zip
# make install
tsar配置介绍
前面介绍了tsar的介绍,现在大家来看看tsar的配置。
定时任务配置:/etc/cron.d/tsar
/etc/cron.d/tsar
* * * * * root /usr/bin/tsar --cron & /dev/null 2&&1
如上所示,/etc/cron.d/tsar里面负责每分钟以root用户的角色调用tsar命令来执行数据采集。
日志文件轮转 : /etc/logrotate.d/tsar
$ cat /etc/logrotate.d/tsar
/var/log/tsar.data
rotate 120
nocompress
notifempty
/usr/bin/chattr -a /var/log/tsar.data
postrotate
/usr/bin/chattr +a /var/log/tsar.data
在日志文件轮转配置中,每个月会把tsar的本地存储进行轮转,此外这里也设定了数据在/var/log/tsar.data下
配置文件:/etc/tsar/tsar.conf
[root@localhost ~]
debug_level ERROR
mod_cpu on
mod_mem on
mod_swap on
mod_tcp on
mod_udp on
mod_traffic on
mod_pcsw on
mod_partition on
mod_tcpx on
mod_load on
mod_apache off
mod_lvs off
mod_haproxy off
mod_squid off
mod_nginx off
mod_swift off
mod_swift_code off
mod_swift_domain off
mod_swift_esi off
mod_swift_fwd off
mod_swift_store off
mod_swift_swapdir off
mod_swift_purge off
mod_swift_sys off
mod_swift_tcmalloc off
mod_tmd off
mod_percpu off
mod_tcprt off
mod_proc off pidname
mod_pharos off
mod_tmd4 off
mod_keyserver off
output_interface file
output_file_path /var/log/tsar.data
output_stdio_mod mod_swap,mod_partition,mod_cpu,mod_mem,mod_lvs,mod_haproxy,mod_traffic,mod_squid,mod_load,mod_tcp,mod_udp,mod_tcpx,mod_apache,mod_pcsw,mod_io,mod_percpu
include /etc/tsar/conf.d/*.conf
/etc/tsar/tsar.conf负责tsar的采集模块和输出的具体配置;在这里配置启用哪些模块,输出等内容。
tsar 模块库
[root@localhost modules]
total 1136
-rwxr-xr-x 1 root root 15472 Jul
3 22:06 mod_ts_err.so
-rwxr-xr-x 1 root root 14747 Jul
3 22:06 mod_ts_os.so
-rwxr-xr-x 1 root root 14772 Jul
3 22:06 mod_ts_storage.so
-rwxr-xr-x 1 root root 10606 Jul
3 22:06 mod_udp.so
-rwxr-xr-x 1 root root 15215 Jul
3 22:06 mod_ts_client.so
-rwxr-xr-x 1 root root 16195 Jul
3 22:06 mod_ts_codes.so
-rwxr-xr-x 1 root root 15241 Jul
3 22:06 mod_ts_conn.so
-rwxr-xr-x 1 root root 14633 Jul
3 22:06 mod_tcpx.so
-rwxr-xr-x 1 root root 16708 Jul
3 22:06 mod_tmd4.so
-rwxr-xr-x 1 root root 15627 Jul
3 22:06 mod_tmd.so
-rwxr-xr-x 1 root root 11658 Jul
3 22:06 mod_traffic.so
-rwxr-xr-x 1 root root 14969 Jul
3 22:06 mod_ts_cache.so
-rwxr-xr-x 1 root root 22694 Jul
3 22:06 mod_swift_swapdir.so
-rwxr-xr-x 1 root root 25332 Jul
3 22:06 mod_swift_sys.so
-rwxr-xr-x 1 root root 20436 Jul
3 22:06 mod_swift_tcmalloc.so
-rwxr-xr-x 1 root root 14065 Jul
3 22:06 mod_tcprt.so
-rwxr-xr-x 1 root root 13409 Jul
3 22:06 mod_tcp.so
模块路径:/usr/local/tsar/modules,各个模块的动态库so文件;
tsar使用介绍
在tsar的使用中,可以参考下面的帮助信息,完成对应的监控。
Usage: tsar [options]
查看最后一次的采集数据
--check/-C
查看最后一次tsar的提醒信息,如:tsar --check / tsar --check --cpu --io
使用crond模式来进行tsar监控
--interval/-i
指明tsar的间隔时间,默认单位分钟,带上--live参数则单位是秒
列出启用的模块
查看实时数据
指定输入文件
--ndays/-n
指定过去的数据天数,默认1天
指定日期,YYYYMMDD或者n代表n天前
--detail/-D
能够指定查看主要字段还是模块的所有字段
指定字段,tsar –cpu -s sys,util
Modules Enabled:
列出cpu相关的监控计数
物理内存的使用情况
虚拟内存的使用情况
TCP 协议 IPV4的使用情况
UDP 协议 IPV4的使用情况
网络传出的使用情况
Linux IO的情况
进程和上下文切换
--partition
磁盘使用情况
TCP 连接相关的数据参数
系统负载情况
tsar cpu监控:
如下所示,使用参数–cpu可以监控系统的cpu,参数user表示用户空间cpu, sys内核空间cpu使用情况,wait是IO对应的cpu使用情况,hirq,sirq分别是硬件中断,软件中断的使用情况,util是系统使用cpu的总计情况。下表的数据可以看出,当前系统已使用大约30%的cpu。
-----------------------cpu----------------------
23/08/15-21:25
23/08/15-21:30
23/08/15-21:35
23/08/15-21:40
23/08/15-21:45
tsar监控虚存和load情况
下图列出了对应的系统swap使用,load的使用情况。
--swap --load
---------------swap------------- -------------------load-----------------
23/08/15-21:30
23/08/15-21:35
23/08/15-21:40
23/08/15-21:45
23/08/15-21:50
23/08/15-21:55
23/08/15-22:00
tsar 内存使用情况
下图列出了系统内存的使用情况
-----------------------mem----------------------
23/08/15-21:25
23/08/15-21:30
23/08/15-21:35
23/08/15-21:40
23/08/15-21:45
23/08/15-21:50
tsar io使用情况
下图列出了使用tsar来监控系统IO情况
------------------------------------------sda-------------------------------------------
23/08/15-21:25
23/08/15-21:30
23/08/15-21:35
23/08/15-21:40
23/08/15-21:45
tsar 网络监控统计
---------------------traffic--------------------
23/08/15-21:30 548.5K
23/08/15-21:35 762.4K
23/08/15-21:40 540.2K
23/08/15-21:45 640.3K
23/08/15-21:50 564.4K
23/08/15-21:55 599.8K
--tcp --udp -d 1
-------------------------------tcp------------------------------ ---------------udp--------------
23/08/15-00:05
23/08/15-00:10
23/08/15-00:15
23/08/15-00:20
23/08/15-00:25
tsar 检查告警信息
查看最后一次tsar的提醒信息,这里包括了系统的cpu,io的告警情况。
$tsar --check --cpu --io
localhost.localdomain
cpu:user=25.0 cpu:sys=2.1 cpu:wait=0.1 cpu:hirq=0.0 cpu:sirq=0.2 cpu:util=27.4 io:sda:rrqms=0.0 io:sda:wrqms=4172.4 io:sda:rs=80.3 io:sda:ws=493.0 io:sda:rsecs=1664.0 io:sda:wsecs=18661.7 io:sda:rqsize=35.5 io:sda:qusize=4.0 io:sda:await=7.7 io:sda:svctm=0.3 io:sda:util=18.5
tsar 历史数据回溯
通过参数-d 2 可以查出两天前到现在的数据,-i 1 表示以每次1分钟作为采集显示。
$tsar -d 2 -i 1
---cpu-- ---mem-- ---tcp-- -----traffic---- --sda---
22/08/15-00:02 ------
22/08/15-00:03
22/08/15-00:04
22/08/15-00:05
22/08/15-00:06
22/08/15-00:07
22/08/15-00:08
22/08/15-00:09
参考链接:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1877次
排名:千里之外磁盘I/O性能监控命令 -
随笔 - 34, 文章 - 0, 评论 - 8, 引用 - 0
1) iostat命令
iostat 命令主要通过观察物理磁盘的活动时间以及他们的平均传输速度,监控系统输入 / 输出设备负载。根据 iostat 命令产生的报告,用户可确定一个系统配置是否平衡,并据此在物理磁盘与适配器之间更好地平衡输入 / 输出负载。 iostat 工具的主要目的是通过监控磁盘的利用率,而探测到系统中的 I/O 瓶颈。不同操作系统命令格式输出格式略有不同,管理员可以通过查看用户手册来确定它的用法。
安装 iostat
iostat命令,如果没有使用命令,则需要进行安装。
apt-get install sysstat
deb包下载地址 (Ubuntu Server 9.10)
targz包下载地址
2) sar命令
sar 命令报告 CPU 的使用情况, I/O 以及其它系统行为。 sar 命令可以收集,报告以及保存系统行为信息。以这种方式收集到的数据对于确定系统的时间周期特征和决定峰值使用时间是很有用的。但要注意的是, sar 命令自己运行时会产生相当数量的读写,因此最好在没有工作量的情况下运行 sar 统计,看看 sar 对总的统计数字有多大的影响。
2 .磁盘 I/O 性能指标
在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。磁盘 I/O 性能监控的指标主要包括:
1) 每秒 I/O 数( IOPS 或 tps)
对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。
2) 吞吐量( Throughput)
指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为 Kbps, MB/s 等。当传输大块不连续数据的数据,该指标有重要参考作用。
3) 平均 I/O 数据尺寸
平均 I/O 数据尺寸为吞吐量除以 I/O 数目,该指标对揭示磁盘使用模式有重要意义。一般来说,如果平均 I/O 数据尺寸小于 32K,可认为磁盘使用模式以随机存取为主;如果平均每次 I/O 数据尺寸大于 32K,可认为磁盘使用模式以顺序存取为主。
4) 磁盘活动时间百分比( Utilization) %util
磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过 70%,应用进程将花费较长的时间等待 I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。
5) 服务时间( ServiceTime) svctm
指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关, CPU/ 内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过 20ms,一般可考虑会对上层应用产生影响。
6) I/O 等待队列长度( Queue Length)
指待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过 2,一般认为该磁盘存在 I/O 性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的 I/O 等待队列长度。
7) 等待时间( Wait Time)
指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果 I/O 请求持续超出磁盘处理能力,意味着来不及处理的 I/O 请求不得不在队列中等待较长时间。通过监控以上指标,并将这些指标数值与历史数据,经验数据以及磁盘标称值对比,必要时结合 CPU、内存、交换分区的使用状况,不难发现磁盘 I/O潜在或已经出现的问题。但如果避免和解决这些问题呢?这就需要利用到磁盘 I/O 性能优化方面的知识和技术。限于本文主题和篇幅,仅列出一些常用的优化方法供读者参考:
( 1)调整数据布局,尽量将 I/O 请求较合理的分配到所有物理磁盘中;
( 2)对于 RAID 磁盘阵列,尽量使应用程序 I/O 等于条带尺寸或者为条带尺寸的倍数。并选取合适的 RAID 方式,如 RAID10, RAID5;
( 3)增大磁盘驱动程序的队列深度,但不要超过磁盘的处理能力,否则,部分 I/O 请求会因为丢失而重新发出,这将降低性能;
( 4)应用缓存技术减少应用存取磁盘的次数,缓存技术可应用在文件系统级别或者应用程序级别;
( 5)由于多数数据库中已包括经优化后的缓存技术,数据库 I/O 宜直接存取原始磁盘分区( rawpartition)或者利用绕过文件系统缓存的 DIO 技术( direct IO);
( 6)利用内存读写带宽远比直接磁盘 I/O 操作性能优越的特点,将频繁访问的文件或数据置于内存中。
3 . iostat 使用
[命令 :] iostat [-c|-d] [-k] [-t] [间隔描述 ] [检测次数 ]
-c : 仅显示 cpu的状态
-d : 仅显示存储设备的状态,不可以和 -c一起使用
-k : 默认显示的是读入读出的 block信息,用 -k可以改成 KB大小来显示
-t: 显示日期
-p device | ALL : device为某个设备或者某个分区,如果使用 ALL,就表示要显示所有分区和设备的信息
1)基本使用
$iostat-d -k 1 10
说明: 参数 -d 表示,显示设备(磁盘)使用状态; -k 某些使用 block 为单位的列强制使用 Kilobytes 为单位; 1 10 表示,数据显示每隔 1 秒刷新一次,共显示 10 次 ,每一次的统计都是上一次的统计时间到这次的统计时间之间的统计数据。
2) -x 参数
使用 -x 参数我们可以获得更多统计信息。
$iostat -d -x -k 1 10
3 ) -c 参数
获取 cpu 部分状态值
$iostat -c 1 10
4 )常见用法
$iostat -d -k 1 10 # 查看 TPS 和吞吐量信息
$iostat -d -x -k 1 10 # 查看设备使用率( %util )、响应时间( await )
$iostat -c 1 10 # 查看 cpu 状态
5)mpstat 命令
mpstat 是 MultiProcessor Statistics 的缩写,是实时系统监控工具。其报告与 CPU 的一些统计信息,这些信息存放在 /proc/stat 文件中。在多 CPUs 系统里,其不但能查看所有 CPU 的平均状况信息,而且能够查看特定 CPU 的信息。下面只介绍 mpstat 与 CPU 相关的参数, mpstat 的语法如下:
mpstat&&[-P {|ALL}] [internal [count]]
-P&&{|ALL} 表示监控哪个 CPU , cpu 在 [0,cpu 个数 -1] 中取值
internal&& 相邻的两次采样的间隔时间
count&& 采样的次数, count 只能和 delay 一起使用
当没有参数时, mpstat 则显示系统启动以后所有信息的平均值。有 interval 时,第一行的信息自系统启动以来的平均信息。
( 1 ) $mpstat
mpstat 不带参数时,输出为从系统启动以来的平均值。
( 2 ) $mpstat-P ALL 2 3
2 秒产生所有处理器的统计数据报告 ,统计三次,默认输出所有的处理器的统计数据;
( 3 ) $mpstat&P 0 2 3
2 秒产生 0 号处理器的统计数据报告,统计三次;
4 . iostat 相关参数说明
read request merge
每秒进行 merge 的读操作数目。即 delta(rmerge)/s
write request merge
每秒进行 merge 的写操作数目。即 delta(wmerge)/s
每秒完成的读 I/O 设备次数。即 delta(rio)/s
每秒完成的写 I/O 设备次数。即 delta(wio)/s
read section
每秒读扇区数。即 &&delta(rsect)/s
write section
每秒写扇区数。即 &&delta(wsect)/s
read kilo byte
每秒读 K字节数。是 rsect/s 的一半,因为每扇区大小为 512字节。 (需要计算 )
write kilo byte
每秒写 K字节数。是 wsect/s 的一半。 (需要计算 )
average request size
平均每次设备 I/O操作的数据大小 (扇区 )。 delta(rsect+wsect)/delta(rio+wio)
average queue size
平均 I/O队列长度。即 delta(aveq)/s/1000 (因为 aveq的单位为毫秒 )
average wait
平均每次设备 I/O操作的等待时间 (毫秒 )。即 &&delta(ruse+wuse)/delta(rio+wio)
service time
平均每次设备 I/O操作的服务时间 (毫秒 )。即 &&delta(use)/delta(rio+wio)
一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为 use的单位为毫秒 )
如果 %util接近 100%,说明产生的 I/O请求太多, I/O系统已经满负荷,该磁盘可能存在瓶颈, idle小于 70% IO压力就较大了 ,一般读取速度有较多的 wait。同时可以结合 vmstat( virtual memory status)查看 b参数 (等待资源的进程数 )和 wa参数 (IO等待所占用的 CPU时间的百分比 ,高过 30%时 IO压力高 )
另外还可以参考 svctm,由于它一般要小于 await (因为同时等待的请求的等待时间被重复计算了 ), svctm 的大小一般和磁盘性能有关, CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。 await 的大小一般取决于服务时间 (svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator 算法,优化应用,或者升级 CPU。队列长度 (avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。
5 .例子 (I/O 系统 vs. 超市排队 )
举一个例子,我们在超市排队 checkout 时,怎么决定该去哪个交款台呢 ? 首当是看排的队人数, 5个人总比 20人要快吧 ? 除了数人头,我们也常常看看前面人购买的东西多少,如果前面有个采购了一星期食品的大妈,那么可以考虑换个队排了。还有就是收银员的速度了,如果碰上了连 钱都点不清楚的新手,那就有的等了。另外,时机也很重要,可能 5 分钟前还人满为患的收款台,现在已是人去楼空,这时候交款可是很爽啊,当然,前提是那过去的 5 分钟里所做的事情比排队要有意义 (不过我还没发现什么事情比排队还无聊的 )。
I/O 系统也和超市排队有很多类似之处 :
&O r/s+w/s 类似于交款人的总数
&O 平均队列长度 (avgqu-sz)类似于单位时间里平均排队人的个数
&O 平均服务时间 (svctm)类似于收银员的收款速度
&O 平均等待时间 (await)类似于平均每人的等待时间
&O 平均 I/O数据 (avgrq-sz)类似于平均每人所买的东西多少
&O I/O 操作率 (%util)类似于收款台前有人排队的时间比例。
参数输出的分析
#iostat -x 1
avg-cpu: %user %nice %sys %idle
16.24 0.00 4.31 79.44
Device: rrqm/s wrqm/s r/s w/s rsec/s&&wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29
上面的 iostat 输出表明秒有 28.57 次设备 I/O 操作 :
总 IO(io)/s=r/s(读 )+w/s(写 )=1.02+27.55 = 28.57 (次 /秒 ) 其中写操作占了主体 (w:r = 27:1)
平均每次设备 I/O操作只需要 5ms就可以完成,但每个 I/O请求却需要等上 78ms,为什么 ? 因为发出的 I/O 请求太多 (每秒钟约 29个 ),假设这些请求是同时发出的,那么平均等待时间可以这样计算 :
平均等待时间 = 单个 I/O 服务时间 * ( 1 + 2 + & + 请求总数 -1) / 请求总数
应用到上面的例子 : 平均等待时间 = 5ms * (1+2+& +28)/29 = 70ms,和 iostat 给出的 78ms 的平均等待时间很接近。这反过来表明 I/O 是同时发起的。
每秒发出的 I/O 请求很多 (约 29个 ),平均队列却不长 (只有 2个 左右 ),这表明这 29 个请求的到来并不均匀,大部分时间 I/O 是空闲的。
一秒中有 14.29% 的时间 I/O 队列中是有请求的,也就是说, 85.71% 的时间里 I/O 系统无事可做,所有 29 个 I/O 请求都在 142毫秒之内处理掉了。
delta(ruse+wuse)/delta(io)= await = 78.21 =& delta(ruse+wuse)/s =78.21 * delta(io)/s = 78.21*28.57 =2232.8,表明每秒内的 I/O请求总共需要等待 2232.8ms。所以平均队列长度应为 2232.8ms/1000ms = 2.23,而 iostat 给出的平均队列长度 (avgqu-sz) 却为 22.35,为什么 ?! 因为 iostat 中有 bug, avgqu-sz 值应为 2.23,而不是 22.35。
我们可以根据这些数据分析出 I/O 请求的模式,以及 I/O 的速度和响应时间。

我要回帖

更多关于 丢失adappmgrutil.dll 的文章

 

随机推荐