发明名称 一种服务器性能数据采集与分析的方法
摘要 本发明提供一种服务器性能数据采集与分析的方法,是以数据采集和分析为核心,通过对采集方法和目标的整理和规范,形成标准化操作,将能够反映服务器性能的关键数据进行采集,以数据为依据,对服务器的各个子系统进行分析,从而找到服务器性能瓶颈,为解决测试或者实际应用中提升服务器性能提供依据。
申请公布号 CN101533366A 申请公布日期 2009.09.16
申请号 CN200910014678.4 申请日期 2009.03.09
申请人 浪潮电子信息产业股份有限公司 发明人 杜继东;乔鑫
分类号 G06F11/22(2006.01)I;H04L12/26(2006.01)I 主分类号 G06F11/22(2006.01)I
代理机构 代理人
主权项 1. 一种服务器性能数据采集与分析的方法,其特征在于,以数据采集和分析为核心,通过对采集方法和目标的整理和规范,形成标准化操作,将能够反映服务器性能的关键数据进行采集,以数据为依据,对服务器的各个子系统进行分析,从而找到服务器性能瓶颈,为解决测试或者实际应用中提升服务器性能提供依据,具体步骤如下:一、数据采集范围1)在测试过程中,要记录整个测试过程中的测试数据,2)确定性能监测的对象,包括各子系统,主要包括cpu,内存,磁盘,网络;二、数据采集同步性1)测试系统可能分为多层架构,在每一层架构上的数据收集要保证时间上的同步,这样才能对系统运行期间的状态变化作出准确的描述;2)各子系统的性能监测数据要保证时间上同步;3)测试日志:在测试过程中,每一天都要完成测试日志,记录一天测试进程,出现问题;三、数据采集方法:数据的采集,根据平台的不同,分为两类:Linux和windows,其中:Linux系统,包括1)性能监测工具A)cpu,内存:vmstatB)磁盘I/O:iostatC)网络:sarWindows系统2)性能监测工具按以下顺序,打开性能监视器:控制面板—>管理工具—>性能四、测试数据整理测试数据的整理,将测试数据表格化,或者图形化,为方便后续的分析做准备;1)测试数据图形化针对Linux系统,Linux系统下我们采集到的数据都是文本格式,需要我们把这些数据图形化,便于后续的数据分析对比;图形包括折线图或柱状图;2)文件命名规则命名规则:A)尽量让文件名包含更多的文件信息;B)格式:工具简称_平台信息_测试模型;五、测试方法:1)采样时间间隔:在同一次测试中,不同工具的采样时间间隔需要相等;2)采点数值:采样点为数值N,A)测试时间为1小时以下:150<N<250;B)测试时间为1-2小时:250<N<450;3)vmstat的使用:首先需要创建目录,用来存放测试数据:[root@nodel~]#cd/tmp/[root@nodel tmp]#mkdir test_vmstat执行如下命令:[root@nodel tmp]#vmstat5n>/tmp/test_vmstat/file_name#每5秒钟取值一次,并将结果输出到文件中;4)iostat的使用:首先需要创建目录,用来存放测试数据:命令如下:[root@nodel~]#cd/tmp/[root@nodel tmp]#mkdir test_iostat执行如下命令:[root@nodel tmp]#iostat-x5n|grep sdn>/tmp/test_iostat/file_name#每5秒钟取值一次,并将结果输出到文件中;5)sar的使用:首先需要创建目录,用来存放测试数据:命令如下:[root@nodel~]#cd/tmp/[root@nodel tmp]#mkdir test_sar执行如下命令:[root@nodel tmp]#sar-n DEV5n|grep eth0>/tmp/test_sar/file_name#每5秒钟取值一次,并将结果输出到文件中;六、windows性能监测工具:控制面板—>管理工具—>性能,使用步骤:1)计数器日志:打开性能监测工具,点击性能日志和警报,选择计数器日志完成此步骤,在右边工作区域看到有一个默认的系统日志文件:system overview2)新建日志设置:在右侧的工作区域,右键点击,选择新建日志设置,弹出对话框,填入日志名称;3)添加计数器:单击添加计数器钮,弹出对话框,在性能对象里面,选择要监测的对象,包括处理器,内存,网络;每一个对象对应若干计数器,选中从列表中选择计数器,来添加需要的计数器完成后,进行下一步4)设置日志文件:以上步骤为常规设置,现在点击日志文件,进行日志文件的设置;此处保留默认;5)设置计划:设置为手动执行或根据需要,进行计划设置;6)测试开始,启动,图标颜色有红色变为绿色;新建日志完成,在计数器日志工作区就看到新建日志;红色图标为停止状态,绿色为运行状态;选中日志,点击右键或手动执行开始与停止;六测试数据解读与分析关于Linux平台:测试过程中,通过vmstat,iostat,sar监视系统资源,主要包括:进程,内存,swap,cpu,磁盘I/O以及网卡;vmstat分析:关键参数:1)进程:我们主要关注r与b参数:r参数:运行队列线程数目,包括正在运行的线程和等待CPU时间片的线程,这个数字大于CPU的数目,至少有一个线程要等待CPU,等待CPU的线程越多,越有可能对性能产生影响;b参数:每秒等待队列中的内核线程平均数,包括正在等待文件系统I/O的线程,或由于内存装入控制而被挂起的线程;进程由于内存装入控制而被挂起,在vmstat报告中的阻塞列(b)表明线程数目增加,而不是运行队列中线程数目增加;2)cpu:在该时间间隔内使用CPU时间的百分比细分,cpu列如下:us参数:us列显示了用户模式所消耗的CPU时间;sy参数:sy列详细显示了CPU在系统模式下执行一个线程所花时间的百分比;id参数:id列显示了没有未决磁盘I/O时CPU空闲或等待时间的百分比,没有未决I/O,所有用于等待的时间归入空闲时间中;wa参数:wa列详细显示了有未决磁盘I/O时CPU空闲的时间百分比,当等待正在运行时至少有一个未完成的磁盘I/O,该时间归入等待I/O的时间,该进程使用异步I/O,则对磁盘的I/O请求使调用线程被阻塞或睡眠,直到请求被完成;一旦进程的I/O请求完成,该进程被放入运行队列中,I/O很快完成,该进程使用更多的CPU时间;wa的值不应该超过25%;3)其他参数Memoryswpd:虚拟内存使用情况,单位:KB;free:空闲的内存,单位KBbuff:被用来做为缓存的内存数,单位:KB;Swapsi:从磁盘交换到内存的交换页数量,单位:KB/秒;so:从内存交换到磁盘的交换页数量,单位:KB/秒;IObi:发送到块设备的块数,单位:块/秒;bo:从块设备接收到的块数,单位:块/秒;分析:1)r远大于cpu的数目,系统就会变慢,r大于cpu数目的4倍,说明系统正面临cpu功率短缺,系统会严重变慢;2)id值经常为0,并且sy+us经常大于80%,说明系统cpu负荷过重或者说缺少cpu资源;3)wa值大于25%,说明磁盘没有被很好的平衡,系统花费大量时间等待磁盘I/O或者磁盘的负荷很重;4)linux首先使用物理内存,物理内存使用完后再使用swap分区,所以linux系统一般内存利用率都比较高,si,so都等于0,说明swap分区未被使用;改进方案:1)调整应用,使其更好的利用cpu,增加cpu数目或者升高cpu主频;2)优化磁盘,解决I/O问题;iostat分析关键参数:rkB/s:每秒读K字节数,是rsect/s的一半,因为每扇区大小为512字节;wkB/s:每秒写K字节数,是wsect/s的一半;avgqu-sz:平均I/O队列长度;await:平均每次设备I/O操作的等待时间(毫秒);svctm:平均每次设备I/O操作的服务时间(毫秒);%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的;分析:1)磁盘显示长时间的高读写,同时svctm也远大于30,await的值也远大于svctm,那么说明系统存在严重的磁盘I/O瓶颈;2)%util一直接近100%,说明系统产生的I/O请求太多,系统可能存在磁盘瓶颈;3)wait的大小一般取决于服务时间svctm以及I/O队列的长度和I/O请求的发出模式,svctm比较接近await,说明I/O几乎没有等待时间;await远大于svctm,说明I/O队列太长,应用得到的响应时间变慢改进方案:1)调整应用,令其使用磁盘i/o更加有效率,通过修改磁盘队列、使用应用服务器的cache;2)将文件系统分布到2个或多个磁盘上,改变磁盘raid方案;3)更换更好的盘阵或磁盘,使用更快的存储方案;关于windows平台Windows平台测试,要在性能监视器里面选定性能监视对象,然后为每一个监视对象添加性能监测计数器,性能监测对象及每个对象包含的计数器如下:1)processor处理器Processor performance object包含衡量处理器活动方面的计数器,处理器是计算机进行算数和逻辑计算、在附属件起始操作及运行处理线程的部分,一台计算机有多台处理器,处理器对象将每台处理器作为对象的范例;主要包含计数器:%Processor Time—指处理器用来执行非闲置线程时间的百分比,计算方法是,测量范例间隔内非闲置线程活动的时间,用范例间隔减去该值,该值是每台处理器有一个闲置线程,该线程在没有其他线程时运行时的消耗周期,这个计数器是处理器活动的主要说明器,显示在范例间隔时所观察的繁忙时间平均百分比,这个值是用100%减去该服务不活动的时间计算出来的;2)memory内存:Memory performance object由描述计算机上的物理和虚拟内存行为的计数器组成,物理内存指计算机上的随机存取存储器的数量,虚拟内存由物理内存和磁盘上的空间组成,许多内存计数器监视页面调度,过多的页面调度引起拖延,会影响整个系统处理效率;主要包含的计数器有:Available MBytes是指以MB表示的物理内存量,此内存能立刻分配给一个进程或系统使用,它等于分配给待机、空闲和零分页列表内存的总和;3)Physical Disk硬盘:Physical Disk performance object包含监视计算机上的硬盘或固定磁盘驱动器的计数器,磁盘用于存储文件、程序及分页数据并且通过读取检索这些项目并通过记录写入对其进行更改,物理磁盘计数器的值为逻辑磁盘值的总和;主要包含的计数器有:Avg.Disk Queue Length指读取和写入请求的平均数;%Disk Time指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比;4)NetworkInterface网络:NetworkInterface performance object包括衡量通过一个TCP/IP网络连接发送和接收字节和数据包的速率的计数器,它包括监督连接错误的计数器;主要包含的计数器有:Bytes Total/sec是在每个网络适配器上发送和接收字节的速率,包括帧字符在内,NetworkInterface//Bytes Received/sec是NetworkInterface//BytesReceived/sec和Network Interface//Bytes Sent/sec的总和;
地址 250014山东省济南市历下区山大路224号