Linux性能监测Word格式文档下载.docx
- 文档编号:15691475
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:21
- 大小:39.28KB
Linux性能监测Word格式文档下载.docx
《Linux性能监测Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Linux性能监测Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
∙IO
∙Network
这些子系统互相依赖,了解这些子系统的特性,监测这些子系统的性能参数以及及时发现可能会出现的瓶颈对系统优化很有帮助。
应用类型
不同的系统用途也不同,要找到性能瓶颈需要知道系统跑的是什么应用、有些什么特点,比如webserver对系统的要求肯定和fileserver不一样,所以分清不同系统的应用类型很重要,通常应用可以分为两种类型:
∙IO相关,IO相关的应用通常用来处理大量数据,需要大量内存和存储,频繁IO操作读写数据,而对CPU的要求则较少,大部分时候CPU都在等待硬盘,比如,数据库服务器、文件服务器等。
∙CPU相关,CPU相关的应用需要使用大量CPU,比如高并发的web/mail服务器、图像/视频处理、科学计算等都可被视作CPU相关的应用。
看看实际中的例子,第1个是文件服务器拷贝一个大文件时表现出来的特征,第2个是CPU做大量计算时表现出来的特征:
$vmstat1
procs-----------memory-------------swap-------io------system-------cpu------
rbswpdfreebuffcachesisobiboincsussyidwast
0414019627243355164852308003886502414425630247520
0414019618163355164853868007686553614345220150480
0414019607883355164855300007684864014125730150490
04140195852833551648572800010246553614155210141570
0514019574883355164858884007688141215046090250490
40140362509633425632665840001610544701000000
40140362522033426432665760001210374481000000
401403624468334264326658000014811606321000000
4014036244683342643266580000010785271000000
40140362471233426432665800008010535011000000
上面两个例子最明显的差别就是id一栏,代表CPU的空闲率,拷贝文件时候id维持在50%左右,CPU大量计算的时候id基本为0。
底线
我们如何知道系统性能是好还是差呢?
这需要事先建立一个底线,如果性能监测得到的统计数据跨过这条线,我们就可以说这个系统性能差,如果数据能保持在线内我们就说性能好。
建立这样底线需要知道一些理论、额外的负载测试和系统管理员多年的经验。
如果自己没有多年的经验,有一个简单划底线的办法就是:
把这个底线建立在自己对系统的期望上。
自己期望这个系统有个什么样的性能,这是一个底线,如果没有达到这个要求就是性能差。
比如,VPSee上个月有个RAID0的测试,期望的测试结果应该是RAID0的IO性能比单硬盘有显著提高,底线是RAID0的IO至少要比单硬盘要好(好多少不重要,底线是至少要好),测试结果却发现RAID0性能还不如单硬盘,说明性能差,这个时候需要问个为什么,这往往是性能瓶颈所在,经过排查发现是原硬盘有硬件瑕疵造成性能测试结果错误。
监测工具
我们只需要简单的工具就可以对Linux的性能进行监测,以下是VPSee常用的工具:
工具
简单介绍
top
查看进程活动状态以及一些系统状况
vmstat
查看系统状态、硬件和系统信息等
iostat
查看CPU负载,硬盘状况
sar
综合工具,查看系统状况
mpstat
查看多处理器状况
netstat
查看网络状况
iptraf
实时网络状况监测
tcpdump
抓取网络数据包,详细分析
mpstat
tcptrace
数据包分析工具
netperf
网络带宽工具
dstat
综合工具,综合了vmstat,iostat,ifstat,netstat等多个信息
接下来几天,VPSee将会陆续介绍一些Linux性能监测方面的经验。
CPU
CPU的占用主要取决于什么样的资源正在CPU上面运行,比如拷贝一个文件通常占用较少CPU,因为大部分工作是由DMA(DirectMemoryAccess)完成,只是在完成拷贝以后给一个中断让CPU知道拷贝已经完成;
科学计算通常占用较多的CPU,大部分计算工作都需要在CPU上完成,内存、硬盘等子系统只做暂时的数据存储工作。
要想监测和理解CPU的性能需要知道一些的操作系统的基本知识,比如:
中断、进程调度、进程上下文切换、可运行队列等。
这里VPSee用个例子来简单介绍一下这些概念和他们的关系,CPU很无辜,是个任劳任怨的打工仔,每时每刻都有工作在做(进程、线程)并且自己有一张工作清单(可运行队列),由老板(进程调度)来决定他该干什么,他需要和老板沟通以便得到老板的想法并及时调整自己的工作(上下文切换),部分工作做完以后还需要及时向老板汇报(中断),所以打工仔(CPU)除了做自己该做的工作以外,还有大量时间和精力花在沟通和汇报上。
CPU也是一种硬件资源,和任何其他硬件设备一样也需要驱动和管理程序才能使用,我们可以把内核的进程调度看作是CPU的管理程序,用来管理和分配CPU资源,合理安排进程抢占CPU,并决定哪个进程该使用CPU、哪个进程该等待。
操作系统内核里的进程调度主要用来调度两类资源:
进程(或线程)和中断,进程调度给不同的资源分配了不同的优先级,优先级最高的是硬件中断,其次是内核(系统)进程,最后是用户进程。
每个CPU都维护着一个可运行队列,用来存放那些可运行的线程。
线程要么在睡眠状态(blocked正在等待IO)要么在可运行状态,如果CPU当前负载太高而新的请求不断,就会出现进程调度暂时应付不过来的情况,这个时候就不得不把线程暂时放到可运行队列里。
VPSee在这里要讨论的是性能监测,上面谈了一堆都没提到性能,那么这些概念和性能监测有什么关系呢?
关系重大。
如果你是老板,你如何检查打工仔的效率(性能)呢?
我们一般会通过以下这些信息来判断打工仔是否偷懒:
∙打工仔接受和完成多少任务并向老板汇报了(中断);
∙打工仔和老板沟通、协商每项工作的工作进度(上下文切换);
∙打工仔的工作列表是不是都有排满(可运行队列);
∙打工仔工作效率如何,是不是在偷懒(CPU利用率)。
现在把打工仔换成CPU,我们可以通过查看这些重要参数:
中断、上下文切换、可运行队列、CPU利用率来监测CPU的性能。
上一篇Linux性能监测:
介绍提到了性能监测前需要知道底线,那么监测CPU性能的底线是什么呢?
通常我们期望我们的系统能到达以下目标:
∙CPU利用率,如果CPU有100%利用率,那么应该到达这样一个平衡:
65%-70%UserTime,30%-35%SystemTime,0%-5%IdleTime;
∙上下文切换,上下文切换应该和CPU利用率联系起来看,如果能保持上面的CPU利用率平衡,大量的上下文切换是可以接受的;
∙可运行队列,每个可运行队列不应该有超过1-3个线程(每处理器),比如:
双处理器系统的可运行队列里不应该超过6个线程。
vmstat是个查看系统整体性能的小工具,小巧、即使在很heavy的情况下也运行良好,并且可以用时间间隔采集得到连续的性能数据。
2114027879803363043531996000128116650333370250
01140278829633630435319960000119456053369250
01140278843633630435319960000124980365467250
01140278268833630435319960000133377926664250
311402779292336304353199200028132370874567250
参数介绍:
∙r,可运行队列的线程数,这些线程都是可运行状态,只不过CPU暂时不可用;
∙b,被blocked的进程数,正在等待IO请求;
∙in,被处理过的中断数
∙cs,系统上正在做上下文切换的数目
∙us,用户占用CPU的百分比
∙sys,内核和中断占用CPU的百分比
∙wa,所有可运行的线程被blocked以后都在等待IO,这时候CPU空闲的百分比
∙id,CPU完全空闲的百分比
举两个现实中的例子来实际分析一下:
rbswpdfreebuffcachesisobiboincsussyidwa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 性能 监测