




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息引言本文是基于unix平台(以solaris为例,其他系统会有少许差异)讲解如何监控服务器的性能、如何获取服务器的性能数据作为解决项目性能瓶颈和性能调优的依据。文档中会按序讲解CPU、Memory、I/O、Network四个部分,并穿插讲解一些命令/工具的使用,同时也会给出一些性能数据的“参考值”作为借鉴,希望能够解决大家对服务器性能数据的一些疑惑,并给大家的日常工作提供帮助。引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络
2、性能数据收集服务器性能数据小结附:获取solaris10系统信息什么是瓶颈?举出几个性能瓶颈的例子。你所理解性能调优是什么? 虽然讲解过程中是顺序的、单独的讲解如何监控/采集每项系统资源的性能数据,但是一定要清楚“服务器各类资源之间的关系是相互依赖、相互制约的”不要孤立的看待某一项性能数据趋于正常/出现瓶颈就妄下结论 例1:用top查看某系统的idle(cpu空闲)95%,并不能说明系统没有性能问题,很可能是因为系统在忙于处理磁盘I/O。 例2:某系统的的性能问题表现为CPU利用率高,其实可能是内存不够用导致CPU消耗在内存管理上,如果用增加CPU方法来优化是解决不了根本问题的。 例3:某系统
3、网络数据传输指标不理想,于是调高了网络吞吐量使监控到网络数据趋于正常,但却带来了新的问题“系统因为增加网络吞吐量而导致CPU出现了瓶颈。” 讲解过程/网上资料中会给出一些“参考值”,顾名思义仅仅能提供给你做对比的参考,不要用来作为“标准”,这些参考值都有一个适用的环境,需要根据项目、应用、系统类型适当的调整这些标准。 例1:Oracle等数据库生来就是I/O大户,用一般应用服务器的标准来衡量oracle数据库服务器的性能是不恰当的。 例2:我们的web应用高并发的情况下则会占用更多的CPU资源。 例3:一个高性能的服务器存在超出“标准”的CS(上下文切换)也是正常的。 分析性能问题时需要有“天
4、马行空”的思维(指的是广阔思维、合理的猜想,而不是胡思乱想),敢于假设、敢于猜想:“我感觉这个问题出在磁盘I/O上;瓶颈有可能是网络带宽”但是对待监控/采集性能数据要杜绝猜想,要有非常严谨的态度,要用数据和事实来说话。 专业的的性能测试人员要用实际的数据说话,不要讲“性能感觉比较差了”或者是“系统响应比较慢了”一类的话。系统响应比较慢,要知道正常是多少、慢了多少、数据量有多少、系统有多少并发等,拿出具体的数据。 杜绝主观的臆想或臆造性能数据,在不正确的依据下工作,将直接导致性能调优的结果出现偏离引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能
5、数据小结附:获取solaris10系统信息运行队列运行队列/cpu数目*100%=cpu饱和度CPU使用率用户使用率+系统使用率=cpu利用率上下文切换context switching(CS)单CPU的分身术(假象)System Activity Reporter(系统活跃情况报告)的缩写监控系统资源的常用命令之一,多用于监控CPU和内存sar是一个低开销的系统性能监控/采集工具sar可以连续对系统采样采样数据可以存储在文件中,便于查询历史数据sar 命令格式:sar options -A -o file t nt为采样间隔,是必须有的参数n为采样次数,是可选的,默认值是1o file表示将
6、命令结果以二进制格式 存放在名字为file的文件中options 为命令行选项-u:显示 CPU 使用率统计信息(sar命令的默认参数),没有任何选项的 sar 命令与 sar -u 命令等效-q:检查队列活动命令示例:用sar进行CPU利用率的分析# sar -u 2 10每2秒采样一次,连续采样10次,观察CPU 的使用情况命令示例:用sar检查进程队列活动# sar -q 2 10每2秒采样一次,连续采样10次,观察进程队列活动情况命令示例:存储sar命令的采样数据# sar -u -otest 2 5观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的test文件中,见(图
7、一)# sar -q -f test# sar -u -f test从test文件中读取系统历史进程队列数据见(图二)从test文件中读取系统历史cpu使用情况数据见(图三)图示见下页Virtual Meomory Statistics(虚拟内存统计)的缩写监控系统资源的常用命令之一,可对操作系统的虚拟内存、进程、CPU活动进行监视vmstat是一个低开销的系统性能监控/采集工具vmstat可以连续对系统采样不足之处:它是对系统的整体情况进行统计,无法对某个进程进行深入分析。vmstat 命令格式:vmstat -cipqsS disk . interval countinterval是两次输
8、出之间的延迟时间count是指按照这个时间间隔统计的次数命令示例:用vmstat进行CPU的监控# vmstat 1 10每间隔1秒采样一次,共采集10次结束kthr:展示内核进程的状态faults:展示进程控制的信息,如cpu上下文切换和中断。cpu:展示cpu使用的情况kthr区域图示如下:faults区域图示如下:CPU区域图示如下:mpstat是Multiprocessor Statistics的缩写mpstat是实时系统监控工具mpstat不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息(在多CPU/核的系统里)mpstat 可以轻松诊断多cpu/内核系统中,多个cp
9、u/内核任务分配不均匀的问题。与 vmstat命令 相似,mpstat 命令监控与 CPU 有关的统计信息,因此所有与 CPU 问题有关的讨论也都适用于 mpstatmpstat 命令格式:mpstat -aq -p | -P processor_set interval count-a:以处理器为单位展示cpu多颗内核的平均信息。mpstat 命令格式:mpstat -aq -p | -P processor_set interval count-q:展示所有虚拟cpu的运行信息,是mpstat命令的默认参数mpstat 命令格式:mpstat -aq -p | -P processor_s
10、et interval count-p:展示所有虚拟cpu的运行信息,比-q参数多一列set,表示处理器的ID,处理器的ID是从0开始的。mpstat 命令格式:mpstat -aq -p | -P processor_set interval count-P:指定监控哪个 CPU, processor_set 取 p的set值,如果processor_set 设置为不存在的处理器ID则不显示数据,如图。# mpstat -P 0 查看第一个CPU# mpstat -P 1 查看第二个CPU# mpstat 5 10 查看所有CPUmpstat 命令格式:mpstat -aq -p | -P
11、processor_set interval countinterval :指定迭代间的时间间隔。如果没有指定 interval,则仅仅显示度量值的一次快照,它实际上报告自系统启动以来的值。count:指定迭代数。如果指定 interval 但不指定 count,则 mpstat 会无限运行。如果没有指定 interval,则不能指定 count。如果指定count,第一批数据总是报告自系统启动以来的平均值(stat类的监控命令均遵循此规则,如vmstat、iostat)。top可以实时监控系统当前的进程和资源使用情况top独占前台,直到用户终止该程序为止top可以按CPU使用、内存使用和执行
12、时间对任务进行排序top可以通过交互式命令定制展示top不是solaris默认的安装工具需要单独安装(top资源占用率较高)Solaris 下安装top工具(需要root权限)前提条件:solaris服务器上需要安装gcc和make工具(下载地址:http:/ gzip d top-3.7.tar.gz# tar xvf top-3.7.tar.gzStep4:进入解开后的文件目录top-3.7# cd top-3.7Step5:# ./configureStep6:# makeStep7:# make installStep8:验证 # top v安装完毕!top 命令格式:top -IST
13、bcinqu -d x -s x -o field -U username number注:各系统/版本的Top命令有较大差别,详细用法见各自的top帮助,这里只讲解常用的几个参数和交互命令。参数-s:设置top间隔的时间(秒),默认top命令刷新的间隔时间为5s-c:显示进程完整的路径与名称交互命令h:进入top帮助c:切换显示进程完整的路径与名称M:按内存使用情况排序(按照SIZE排序)N:按照进程ID排序(PID)P:按照CPU使用百分比排序T:按照进程使用CPU的时间排序u:仅显示所输入的用户进程(输入+号显示所有用户进程)空格:立刻刷新当前显示s:改变两次刷新之间的延迟时间(注意:如
14、果设置太小的间隔时间会加大系统负载)o:通过命令改变排序情况(可使用命令:cpu,size,res,time)n:定义top展示的进程数i: 忽略闲置和僵死进程。q:退出toptop 显示字段和top地位一样,prstat是Solaris系统中最重要、使用最广的实用工具,有些功能甚至要强于top,这里仅对prstat的常用用法做一下介绍,详细用法参加man prstat用法1:prstat interval参数是采样/刷新的时间间隔(以秒为单位),默认间隔时间是5s。用法2:prstat -a将额外打印有关用户的报告,如下图用法3:prstat s|-S 制定prstat排序规则-s:降序排列
15、-S:升序排列cpu:按照 CPU 使用率排序。这是默认设置。pri:按照进程优先级排序。rss:按照进程所使用物理内存的大小排序(按照RSS)。size:按内存使用情况排序(按照SIZE排序)time:按照进程执行时间排序。用法4:prstat u username查看指定用户(username)的进程运行情况用法5:prstat p pid查看指定进程(pid)的运行情况用法6:prstat cvm查看进程cpu资源使用率最高的前15个进程的CPU使用率的情况iostat 命令用来监视系统输入输出设备负载,可以使用-c参数单独监控cpu的使用情况,但一般都是将cpu与系统io信息一起输出使
16、用。例如:# iostat -cnx引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息活动虚拟内存总量内存的总需求量=实际使用的物理内存大小 +使用的交换空间大小交换(swapping)率:进程交换频率调页(paging)率:页面调度频率高换页率:通常情况下,操作系统只执行调入页面进入内存(pagein)的操作,以让进程能够运行。只有操作系统觉得系统需要释放一些内存空间时,才会执行从内存调出页面(pageout)的操作,而过高的调出页面操作说明内存缺乏,需要配合其他工具进一步分析。高交换率:空闲物理内存
17、少,使用的交换空间大,说明系统中实际的物理内存已不够满足新的分配需求,导致很多进程被换入交换空间,强制进入不活动状态。application is out of memory交换空间(swap)不足vmstat是监控内存的主要工具vmstat检测内存举例:“颠簸”演示thrashing 颠簸:是内存存在性能问题的一个表现,指的是因系统发生过度页请求操作而导致系统运行缓慢或进入暂停状态的现象。swap -s列出总调页空间的摘要信息(磁盘+内存)swap -l列出调页空间区域的信息(磁盘)sar -b 5 3监控缓冲区的使用情况sar -w 5 3监控系统交换活动使用ipcs命令可以查看系统使用的
18、共享内存的信息# ipcs -ma注:由于我的solaris服务器上没有使用共享内存的进程,图例中使用的是linux系统的截图,和solaris的展示风格会略有不同。常用命令# pmap -x pid使用prstat -mL关注进程等待内存的时间百分比(DFL值)solaris下默认的ps命令版本为System V 版本常用ps命令#ps -elf# ps -efl|head -1;ps -efl|sort -rk10|head -10查看系统所有进程查看内存消耗最多的前10个进程利用mdb -k 查看系统物理内存的分配情况引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据
19、监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息磁盘的IOPS或tps(每秒I/O数):一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和。磁盘的吞吐量(Throughput):指磁盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为Kbps,MB/s等。磁盘利用率(磁盘活动时间百分比disk utilization ):磁盘处于活动状态时间的百分比,例如:磁盘在数据传输和处理命令(如寻道)。磁盘利用率与资源争用程度成正比,与性能成反比。磁盘服务时间(Service Time):指磁盘读或写操作执行的
20、时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。I/O等待队列长度( disk queue length ):指待处理的I/O请求的数目,如果 I/O请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O性能问题。需要注意:如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的I/O 等待队列长度。等待时间(Wait Time):指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果 I/O 请求
21、持续超出磁盘处理能力,意味着来不及处理的 I/O 请求不得不在队列中等待较长时间。过高的磁盘利用率太长的磁盘等待队列:指单块磁盘的队列长度持续超过2 。高等待磁盘I/O的时间所占的百分率太长的运行进程队列,但CPU却空闲太长等待I/O进程队列df -h命令用来检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。df -oi命令显示磁盘inode信息,inode 的数量关系着系统中可以建立的档案及目录总数。du(disk usage):用来查看某个文件或目录占用的磁盘空间大小。使用du查看当前目录下占用磁盘空间最多的前10个文件#du -k | s
22、ort -rn|headdf和du输出结果会有差距引入元数据的概念元数据(Meta Data):文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。差距原因分析du -s命令:通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数而计算出使用的磁盘大小;df命令:通过查看文件系统磁盘块分配图得出总块数与剩余块数而计算出使用的磁盘大小。du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data,因此
23、正常情况下,df计算的USED空间会比du计算的结果要稍大。quota -v显示当前用户磁盘使用情况和限额。vmstat命令观察磁盘tps(每秒I/O数)vmstat命令观察磁盘tps(每秒I/O数)vmstat命令可以为四个磁盘报告每秒磁盘I/O的数量,s表示scsi盘,0表示盘号iostat对系统的磁盘操作活动进行监视的主要工具。iostat在监控磁盘活动统计情况的同时也会监控CPU使用情况。iostat的弱点是它仅能对系统的整体情况进行分析,不能对某个进程进行深入分析。iostat -E查看磁盘物理信息常用命令# iostat -xtc 5每隔5s输出一次磁盘I/O信息sar -d 5
24、2监控硬盘使用情况引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息可用性(availability):测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 ping 命令。响应时间(response time): Ping 命令的 echo request/reply 一次往返所花费时间就是响应时间。网络延时latency/delay :网络延时是向目的地发送请求到目的地实际接收到数据包之间的时间间隔即一个报文或分组从一个网络(或一条链路)的一端传送到另一端所需要的时间。网络利用率(netw
25、ork utilization):网络利用率是指网络被使用的时间占总时间(即被使用的时间+空闲的时间)的比例。网络吞吐量(network throughput):网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽,即端到端每秒发送的比特数网络带宽容量(network bandwidth capacity):数字信道的“数据率”(比特率),指的是数字信道传送数字信号的速率,带宽表示在特定的一段时间内可以通过网络传输的数据包数量。带宽影响可以传输的数据量,它把向一个主机传输数据的速度限制为网络连接支持的最大速度,在使用多个并发连接时限制总传输速度。最常用的网络测试命令pin
26、g -s 4088 5命令解释:用4096(4k)大小的数据包。去连续ping 5 次。其中: 为目标主机IP地址;4088为指定数据包大小,默认大小为56,实际包大小=4088+8=4096;5表示发包次数为5次。netstat是Network Statistics的缩写,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat -i检测每一个接口发送和接收数据包的情况netstat -m 检查内存如果Ierrs列比Ipkts的1%大,那么,需要执行netstat-m命令来检查内存是否不够。引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息GMON工具组成gmon.sh脚本(shell脚本)用于采集服务器的性能数据(CPU、内存、磁盘、网络)及服务器信息,执行后生cpu.gmon、 disk.gmon、 mcpu.gmon、 net.gmon、 static.gmon成五个数据文件。nicstat脚本(perl脚本)nicstat脚本用于收集网络数据(net
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业合规采购廉政协议书
- 城市绿化带标志牌设计与施工合同
- 快餐连锁店特许经营合同
- 桉树种植基地承包与林业生态修复合作协议
- 蛋白质亚细胞定位
- 内科护理学肺部感染护理
- 学校新团员培训
- 古代诗歌鉴赏(2025年5月各地高考卷分类汇编一)-2025年高考语文复习(新高考专用)解析版
- 工业自动化专业(初级)模拟考试题与参考答案解析
- 护理礼仪大赛展示
- 江苏省南通市海门区2023-2024学年七年级下学期期末数学试题
- 人音版八年级音乐上册(简谱)第三单元《天路》教学设计
- 第六章+平面向量及其应用+小结 高一下学期数学人教A版(2019)必修第二册
- 2024年山东省聊城市冠县中考一模英语试题(原卷版)
- 山东省青岛市平度市2024届中考二模语文试题含解析
- 国开可编程控制器应用形考实训任务六
- 周志华-机器学习-Chap01绪论-课件
- 电力储能用锂离子电池
- 华为MPR+LTC项目项目总体方案+P183
- 自然资源调查监测技能竞赛理论考试题库大全-中(多选题)
- 水质监测服务水质自动监测系统运行维护方案
评论
0/150
提交评论