您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > solaris环境性能监控
引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息引言本文是基于unix平台(以solaris为例,其他系统会有少许差异)讲解如何监控服务器的性能、如何获取服务器的性能数据作为解决项目性能瓶颈和性能调优的依据。文档中会按序讲解CPU、Memory、I/O、Network四个部分,并穿插讲解一些命令/工具的使用,同时也会给出一些性能数据的“参考值”作为借鉴,希望能够解决大家对服务器性能数据的一些疑惑,并给大家的日常工作提供帮助。引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息什么是瓶颈?举出几个性能瓶颈的例子。你所理解性能调优是什么?虽然讲解过程中是顺序的、单独的讲解如何监控/采集每项系统资源的性能数据,但是一定要清楚“服务器各类资源之间的关系是相互依赖、相互制约的”不要孤立的看待某一项性能数据趋于正常/出现瓶颈就妄下结论例1:用top查看某系统的idle(cpu空闲)95%,并不能说明系统没有性能问题,很可能是因为系统在忙于处理磁盘I/O。例2:某系统的的性能问题表现为CPU利用率高,其实可能是内存不够用导致CPU消耗在内存管理上,如果用增加CPU方法来优化是解决不了根本问题的。例3:某系统网络数据传输指标不理想,于是调高了网络吞吐量使监控到网络数据趋于正常,但却带来了新的问题“系统因为增加网络吞吐量而导致CPU出现了瓶颈。”讲解过程/网上资料中会给出一些“参考值”,顾名思义仅仅能提供给你做对比的参考,不要用来作为“标准”,这些参考值都有一个适用的环境,需要根据项目、应用、系统类型适当的调整这些标准。例1:Oracle等数据库生来就是I/O大户,用一般应用服务器的标准来衡量oracle数据库服务器的性能是不恰当的。例2:我们的web应用高并发的情况下则会占用更多的CPU资源。例3:一个高性能的服务器存在超出“标准”的CS(上下文切换)也是正常的。分析性能问题时需要有“天马行空”的思维(指的是广阔思维、合理的猜想,而不是胡思乱想),敢于假设、敢于猜想:“我感觉这个问题出在磁盘I/O上…;瓶颈有可能是网络带宽…”但是对待监控/采集性能数据要杜绝猜想,要有非常严谨的态度,要用数据和事实来说话。专业的的性能测试人员要用实际的数据说话,不要讲“性能感觉比较差了”或者是“系统响应比较慢了”一类的话。系统响应比较慢,要知道正常是多少、慢了多少、数据量有多少、系统有多少并发等,拿出具体的数据。杜绝主观的臆想或臆造性能数据,在不正确的依据下工作,将直接导致性能调优的结果出现偏离引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息运行队列运行队列/cpu数目*100%=cpu饱和度CPU使用率用户使用率+系统使用率=cpu利用率上下文切换contextswitching(CS)单CPU的分身术(假象)SystemActivityReporter(系统活跃情况报告)的缩写监控系统资源的常用命令之一,多用于监控CPU和内存sar是一个低开销的系统性能监控/采集工具sar可以连续对系统采样采样数据可以存储在文件中,便于查询历史数据sar命令格式:sar[options][-A][-ofile]t[n]t为采样间隔,是必须有的参数n为采样次数,是可选的,默认值是1ofile表示将命令结果以二进制格式存放在名字为file的文件中options为命令行选项••-u:显示CPU使用率统计信息(sar命令的默认参数),没有任何选项的sar命令与sar-u命令等效-q:检查队列活动命令示例:用sar进行CPU利用率的分析#sar-u210每2秒采样一次,连续采样10次,观察CPU的使用情况命令示例:用sar检查进程队列活动#sar-q210每2秒采样一次,连续采样10次,观察进程队列活动情况命令示例:存储sar命令的采样数据#sar-u-otest25\\观察CPU的使用情况,并将采样结果以二进制形式存入当前目录下的test文件中,见(图一)#sar-q-ftest#sar-u-ftest\\从test文件中读取系统历史进程队列数据见(图二)\\从test文件中读取系统历史cpu使用情况数据见(图三)图示见下页VirtualMeomoryStatistics(虚拟内存统计)的缩写监控系统资源的常用命令之一,可对操作系统的虚拟内存、进程、CPU活动进行监视vmstat是一个低开销的系统性能监控/采集工具vmstat可以连续对系统采样不足之处:它是对系统的整体情况进行统计,无法对某个进程进行深入分析。vmstat命令格式:vmstat[-cipqsS][disk...][interval[count]]interval是两次输出之间的延迟时间count是指按照这个时间间隔统计的次数命令示例:用vmstat进行CPU的监控#vmstat110每间隔1秒采样一次,共采集10次结束kthr:展示内核进程的状态faults:展示进程控制的信息,如cpu上下文切换和中断。cpu:展示cpu使用的情况kthr区域图示如下:faults区域图示如下:CPU区域图示如下:mpstat是MultiprocessorStatistics的缩写mpstat是实时系统监控工具mpstat不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息(在多CPU/核的系统里)mpstat可以轻松诊断多cpu/内核系统中,多个cpu/内核任务分配不均匀的问题。与vmstat命令相似,mpstat命令监控与CPU有关的统计信息,因此所有与CPU问题有关的讨论也都适用于mpstatmpstat命令格式:mpstat[-aq][-p|-Pprocessor_set][interval[count]]-a:以处理器为单位展示cpu多颗内核的平均信息。mpstat命令格式:mpstat[-aq][-p|-Pprocessor_set][interval[count]]-q:展示所有虚拟cpu的运行信息,是mpstat命令的默认参数mpstat命令格式:mpstat[-aq][-p|-Pprocessor_set][interval[count]]-p:展示所有虚拟cpu的运行信息,比-q参数多一列set,表示处理器的ID,处理器的ID是从0开始的。mpstat命令格式:mpstat[-aq][-p|-Pprocessor_set][interval[count]]-P:指定监控哪个CPU,processor_set取–p的set值,如果processor_set设置为不存在的处理器ID则不显示数据,如图。#mpstat-P0\\查看第一个CPU#mpstat-P1\\查看第二个CPU#mpstat510\\查看所有CPUmpstat命令格式:mpstat[-aq][-p|-Pprocessor_set][interval[count]]interval:指定迭代间的时间间隔。如果没有指定interval,则仅仅显示度量值的一次快照,它实际上报告自系统启动以来的值。count:指定迭代数。如果指定interval但不指定count,则mpstat会无限运行。如果没有指定interval,则不能指定count。如果指定count,第一批数据总是报告自系统启动以来的平均值(stat类的监控命令均遵循此规则,如vmstat、iostat…)。top可以实时监控系统当前的进程和资源使用情况top独占前台,直到用户终止该程序为止top可以按CPU使用、内存使用和执行时间对任务进行排序top可以通过交互式命令定制展示top不是solaris默认的安装工具需要单独安装(top资源占用率较高)Solaris下安装top工具(需要root权限)前提条件:solaris服务器上需要安装gcc和make工具(下载地址:)Step1:下载top安装包(top-3.7.tar.gz)并上传到服务器(下载地址:)不建议使用beta版本,如:Version3.8beta1Step3:解压#gzip–dtop-3.7.tar.gz#tar–xvftop-3.7.tar.gzStep4:进入解开后的文件目录top-3.7#cdtop-3.7Step5:#./configureStep6:#makeStep7:#makeinstallStep8:验证#top–v安装完毕!top命令格式:top[-ISTbcinqu][-dx][-sx][-ofield][-Uusername][number]注:各系统/版本的Top命令有较大差别,详细用法见各自的top帮助,这里只讲解常用的几个参数和交互命令。参数-s:设置top间隔的时间(秒),默认top命令刷新的间隔时间为5s-c:显示进程完整的路径与名称交互命令h:进入top帮助c:切换显示进程完整的路径与名称M:按内存使用情况排序(按照SIZE排序)N:按照进程ID排序(PID)P:按照CPU使用百分比排序T:按照进程使用CPU的时间排序u:仅显示所输入的用户进程(输入+号显示所有用户进程)空格:立刻刷新当前显示s:改变两次刷新之间的延迟时间(注意:如果设置太小的间隔时间会加大系统负载)o:通过命令改变排序情况(可使用命令:cpu,size,res,time)n:定义top展示的进程数i:忽略闲置和僵死进程。q:退出toptop显示字段和top地位一样,prstat是Solaris系统中最重要、使用最广的实用工具,有些功能甚至要强于top,这里仅对prstat的常用用法做一下介绍,详细用法参加manprstat用法1:prstatintervalinterval参数是采样/刷新的时间间隔(以秒为单位),默认间隔时间是5s。用法2:prstat-a将额外打印有关用户的报告,如下图用法3:prstat[–s|-Scpu|pri|rss|size|time]制定prstat排序规则-s:降序排列-S:升序排列cpu:按照CPU使用率排序。这是默认设置。pri:按照进程优先级排序。rss:按照进程所使用物理内存的大小排序(按照RSS)。size:按内存使用情况排序(按照SIZE排序)time:按照进程执行时间排序。用法4:prstat–uusername查看指定用户(username)的进程运行情况用法5:prstat–ppid查看指定进程(pid)的运行情况用法6:prstat–cvm查看进程cpu资源使用率最高的前15个进程的CPU使用率的情况iostat命令用来监视系统输入/输出设备负载,可以使用-c参数单独监控cpu的使用情况,但一般都是将cpu与系统io信息一起输出使用。例如:#iostat-cnx引言几个注意事项监控CPU性能数据监控内存性能数据监控磁盘IO性能数据监控网络性能数据收集服务器性能数据小结附:获取solaris10系统信息活动虚拟内存总量内存的总需求量=实际使用的物理内存大小+使用的交换空间大小交换(swapping)率:进程交换频率调页(paging)率:页面调度频率高换页率:通常情况下,操作系统只执行调入页面进入内存(pagein)的操作,以让进程能够运行。只有操作系统觉得系统需要释放一些内存空间时,才会执行从内存调出页面(pageout)的操作,而过高的调出页面操作说明内存缺乏,需要配合其他工
本文标题:solaris环境性能监控
链接地址:https://www.777doc.com/doc-905219 .html