




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux Metric Concept2011-1-14目录第一部分 Cpus Object21.1Linux CPU 性能检测简介21.2Linux CPU 性能检测工具3vmstat3mpstat4ps51.3Panorama Linux CPU metric5第二部分 IoStats Object62.1 Linux IoStats 性能检测简介62.4Panorama Linux IoStats metric7第三部分 Mem Object73.1 Linux Mem基础知识73.2Panorama Linux Mem metric8第四部分 Nets Object84.1 Linux Nets Object基础知识84.2Panorama Linux Nets metric9第五部分 Proc Object105.1Linux Proc Object基础知识105.2Panorama Linux Proc metric10第六部分 Sys Object116.1Linux Sys Object概述116.2Panorama Linux Sys metric11第七部分 Sys Object127.1Linux Vfs Object概述127.2Panorama Linux Sys metric12第一部分 Cpus Object1.1 Linux CPU 性能检测简介CPU 的占用主要取决于什么样的资源正在 CPU 上面运行,比如拷贝一个文件通常占用较少 CPU,因为大部分工作是由 DMA(Direct Memory Access)完成,只是在完成拷贝以后给一个中断让 CPU 知道拷贝已经完成;科学计算通常占用较多的 CPU,大部分计算工作都需要在 CPU 上完成,内存、硬盘等子系统只做暂时的数据存储工作。要想监测和理解 CPU 的性能需要知道一些的操作系统的基本知识,比如:中断、进程调度、进程上下文切换、可运行队列等。这里 VPSee 用个例子来简单介绍一下这些概念和他们的关系,CPU 很无辜,是个任劳任怨的打工仔,每时每刻都有工作在做(进程、线程)并且自己有一张工作清单(可运行队列),由老板(进程调度)来决定他该干什么,他需要和老板沟通以便得到老板的想法并及时调整自己的工作(上下文切换),部分工作做完以后还需要及时向老板汇报(中断),所以打工仔(CPU)除了做自己该做的工作以外,还有大量时间和精力花在沟通和汇报上。CPU 也是一种硬件资源,和任何其他硬件设备一样也需要驱动和管理程序才能使用,我们可以把内核的进程调度看作是 CPU 的管理程序,用来管理和分配 CPU 资源,合理安排进程抢占 CPU,并决定哪个进程该使用 CPU、哪个进程该等待。操作系统内核里的进程调度主要用来调度两类资源:进程(或线程)和中断,进程调度给不同的资源分配了不同的优先级,优先级最高的是硬件中断,其次是内核(系统)进程,最后是用户进程。每个 CPU 都维护着一个可运行队列,用来存放那些可运行的线程。线程要么在睡眠状态(blocked 正在等待 IO)要么在可运行状态,如果 CPU 当前负载太高而新的请求不断,就会出现进程调度暂时应付不过来的情况,这个时候就不得不把线程暂时放到可运行队列里。VPSee 在这里要讨论的是性能监测,上面谈了一堆都没提到性能,那么这些概念和性能监测有什么关系呢?关系重大。如果你是老板,你如何检查打工仔的效率(性能)呢?我们一般会通过以下这些信息来判断打工仔是否偷懒: 打工仔接受和完成多少任务并向老板汇报了(中断); 打工仔和老板沟通、协商每项工作的工作进度(上下文切换); 打工仔的工作列表是不是都有排满(可运行队列); 打工仔工作效率如何,是不是在偷懒(CPU 利用率)。现在把打工仔换成 CPU,我们可以通过查看这些重要参数:中断、上下文切换、可运行队列、CPU 利用率来监测 CPU 的性能。1.2 Linux CPU 性能检测工具vmstatvmstat 是个查看系统整体性能的小工具,小巧、即使在很 heavy 的情况下也运行良好,并且可以用时间间隔采集得到连续的性能数据。参数介绍: r,可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用; b,被 blocked 的进程数,正在等待 IO 请求; in,被处理过的中断数 cs,系统上正在做上下文切换的数目 us,用户占用 CPU 的百分比 sys,内核和中断占用 CPU 的百分比 wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比 id,CPU 完全空闲的百分比举两个现实中的例子来实际分析一下:从上面的数据可以看出几点:1. interrupts(in)非常高,context switch(cs)比较低,说明这个 CPU 一直在不停的请求资源;2. user time(us)一直保持在 80 以上,而且上下文切换较低(cs),说明某个进程可能一直霸占着 CPU;3. run queue(r)刚好在4个。从上面的数据可以看出几点:1. context switch(cs)比 interrupts(in)要高得多,说明内核不得不来回切换进程;2. 进一步观察发现 system time(sy)很高而 user time(us)很低,而且加上高频度的上下文切换(cs),说明正在运行的应用程序调用了大量的系统调用(system call);3. run queue(r)在14个线程以上,按照这个测试机器的硬件配置(四核),应该保持在12个以内。mpstatmpstat 和 vmstat 类似,不同的是 mpstat 可以输出多个处理器的数据,下面的输出显示 CPU1 和 CPU2 基本上没有派上用场,系统有足够的能力处理更多的任务。ps如何查看某个程序、进程占用了多少 CPU 资源呢?下面是 Firefox 在 VPSee 的一台 Sunray 服务器上的运行情况,当前只有2个用户在使用 Firefox:1.3 Panorama Linux CPU metricThe data adapter collects a set of aggregate metrics for all the processors on a system and a separate set of metrics for each processor. The Panorama namespace path for the aggregate metrics uses this form: DSA-systemDA-LINUX1systemCpus#CpuAggCpus#-Aggregate-metricname The Panorama namespace path for the CPU-level metrics uses this form:DSA-systemDA-LINUX1systemCpus#CpuCpus#cpu numbermetricnameMetricDescriptionidle percent描述了CPU空闲的百分比。load average在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出.系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:- 它没有在等待I/O操作的结果- 它没有主动进入等待状态(也就是没有调用wait)- 没有被停止(例如:等待终止)例如:rootwww2 init.d# uptime7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对 于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。load average也可以理解为每秒钟CPU等待运行的进程个数nice percentPercentage of CPU consumed by niced processes in user mode. This metric is collected only as an aggregate metric, not for each CPU.system percent描述了CPU花费在处理内核操作包括IRQ和软件中断上面的百分比。如果system percent很高说明系统可能存在网络或者驱动堆栈方面的瓶颈。一个系统通常只花费很少的时间去处理内核的操作。total percentTotal CPU usage as a percent.user percent描述了处理用户进程的百分比,包括nice time。如果User time的值很高,说明系统性能用在处理实际的工作。user sys ratioRatio of percentage of CPU consumed by processes in user mode divided by percentage of CPU consumed by user processes in kernel mode (system calls).第二部分 IoStats Object2.1 Linux IoStats 性能检测简介磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的速度差别是以数量级来计算的,就像1天和1分钟的差别一样。iostat反映了终端、磁盘I/O情况和CPU活动。输出结果的第一行是从系统启动到现在为止的这段时间的结果,接下去的每一行是interval时间段内的结果。Kernel里有一组计数器用来跟踪这些值。iostat的默认参数是tdc(terminal, disk, and CPU)。如果任何其他的选项被指定,这个默认参数将被完全替代,例如,iostat -d将只反映磁盘的统计结果。语法:基本语法: iostat ; interval countoption - 让你指定所需信息的设备,像磁盘、cpu或者终端(-d , -c , -t or -tdc ) 。x 选项给出了完整的统计结果(gives the extended statistic)。interval - 在两个samples之间的时间(秒)。count - 就是需要统计几次2.4 Panorama Linux IoStats metricThe data adapter collects a separate set of I/O metrics for each disk on the system. The Panorama namespace path for the metrics uses this form:DSA-systemDA-LINUX1systemIoStats#IoStatIoStats#disk namemetricnameMetricDescriptionI/O Wait (ms)CPU等待I/O操作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。IO (KB)The total (not average) number of kilobytes read or written to the device in the last second. This metric corresponds to the the sum of the kB_read and kB_wrtn disk statistics from the iostat utility.Queue LengthI/O请求的数量,通常一个磁盘队列值为2到3为最佳情况,更高的值说明系统可能存在I/O瓶颈。read kbs per secondThe total (not average) number of kilobytes read in the last second. This metric corresponds to the kB_read disk statistic from the iostat utility.reads per secondThe number of read operations in the last second. This metric corresponds to the r/s disk statistic from the iostat utility.writes per secondThe number of write operations in the last second. This metric corresponds to the w/s disk statistic from the iostat utility.written kbs per secondThe total (not average) number of kilobytes written in the last second. This metric corresponds to the kB_wrtn disk statistic from the iostat utility.第三部分 Mem Object3.1 Linux Mem基础知识这里的讲到的 “内存” 包括物理内存和虚拟内存,虚拟内存(Virtual Memory)把计算机的内存空间扩展到硬盘,物理内存(RAM)和硬盘的一部分空间(SWAP)组合在一起作为虚拟内存为计算机提供了一个连贯的虚拟内存空间,好处是我们拥有的内存 ”变多了“,可以运行更多、更大的程序,坏处是把部分硬盘当内存用整体性能受到影响,硬盘读写速度要比内存慢几个数量级,并且 RAM 和 SWAP 之间的交换增加了系统的负担。在操作系统里,虚拟内存被分成页,在 x86 系统上每个页大小是 4KB。Linux 内核读写虚拟内存是以 “页” 为单位操作的,把内存转移到硬盘交换空间(SWAP)和从交换空间读取到内存的时候都是按页来读写的。内存和 SWAP 的这种交换过程称为页面交换(Paging),值得注意的是 paging 和 swapping 是两个完全不同的概念,国内很多参考书把这两个概念混为一谈,swapping 也翻译成交换,在操作系统里是指把某程序完全交换到硬盘以腾出内存给新程序使用,和 paging 只交换程序的部分(页面)是两个不同的概念。纯粹的 swapping 在现代操作系统中已经很难看到了,因为把整个程序交换到硬盘的办法既耗时又费力而且没必要,现代操作系统基本都是 paging 或者 paging/swapping 混合,swapping 最初是在 Unix system V 上实现的。3.2 Panorama Linux Mem metricThe data adapter collects a single set of memory usage metrics. The Panorama namespace path for the metrics uses this form:DSA-systemDA-LINUX1systemMemMemmetricnameMetricDescriptionFree相比其他操作系统,Linux空闲内存的值不应该做为一个性能参考的重要指标,因为就像我们之前提到过的,Linux内核会分配大量没有被使用的内存作为文件系统的缓存,所以这个值通常都比较小。memory utilization percentPercent of real memory utilization.real activeActive real memory in kilobytes.real totalTotal real memory in kilobytes.virtual activeActive virtual memory in kilobytes.virtual totalTotal virtual memory in kilobytes.第四部分 Nets Object4.1 Linux Nets Object基础知识网络的监测是所有 Linux 子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与 Linux 主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为 Linux 网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。现在我们使用的所有网卡都称为自适应网卡,意思是说能根据网络上的不同网络设备导致的不同网络速度和工作模式进行自动调整。我们可以通过 ethtool 工具来查看网卡的配置和工作模式:4.2 Panorama Linux Nets metricThe data adapter collects a separate set of metrics for each network interface card on the system. The Panorama namespace path for the metrics uses this form:DSA-systemDA-LINUX1systemNets#NetNets#interface namemetricnameMetricDescriptionreceived bytes / secNumber of received bytes per second.received discarded / secNumber of received discarded packets per second.received errors / sec这个值记录了标志为失败的帧的数量。这个可能由错误的网络配置或者部分网线损坏导致,在铜口千兆以太网环境中部分网线的损害是影响性能的一个重要因素。received multi packets / secNumber of received multicast packets per second.received packets / secNumber of received packets per second.transmit bytes / secNumber of transmitted bytes per second.transmit discarded / secNumber of discarded transmit packets per second.transmit errors / secNumber of transmit error packets per second.transmit packets / secNumber of transmitted packets per second.第五部分 Proc Object5.1 Linux Proc Object基础知识Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。本文只讨论基于 intel x86 架构的 Linux /proc 文件系统。/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。/proc 由内核控制,没有承载 /proc 的设备。因为 /proc 主要存放由内核控制的状态信息,所以大部分这些信息的逻辑位置位于内核控制的内存。对 /proc 进行一次 ls -l 可以看到大部分文件都是 0 字节大的;不过察看这些文件的时候,确实可以看到一些信息。这怎么可能?这是因为 /proc 文件系统和其他常规的文件系统一样把自己注册到虚拟文件系统层 (VFS) 了。然而,直到当 VFS 调用它,请求文件、目录的 i-node 的时候,/proc 文件系统才根据内核中的信息建立相应的文件和目录。加载 proc 文件系统 如果系统中还没有加载 proc 文件系统,可以通过如下命令加载 proc 文件系统:mount -t proc proc /proc上述命令将成功加载你的 proc 文件系统。更多细节请阅读 mount 命令的 man page。察看 /proc 的文件 /proc 的文件可以用于访问有关内核的状态、计算机的属性、正在运行的进程的状态等信息。大部分 /proc 中的文件和目录提供系统物理环境最新的信息。尽管 /proc 中的文件是虚拟的,但它们仍可以使用任何文件编辑器或像more, less或 cat这样的程序来查看。当编辑程序试图打开一个虚拟文件时,这个文件就通过内核中的信息被凭空地 (on the fly) 创建了。5.2 Panorama Linux Proc metricThe data adapter collects a separate set of metrics for each process that is specified in the properties file for the data adapter. The Panorama namespace path for the metrics uses this form:DSA-systemDA-LINUX1systemProcprocessnamemetricnameMetricDescriptionfree resident percPercent of free resident memory of the process.major faultsNumber of major faults for the process.minor faultsNumber of minor faults for the process.resident sizeResident set size for process (private pages).system cpu percentPercentage of CPU spent in system mode for the process.user cpu percentPercent of CPU spent in user mode for the process.virtual sizeThe size of virtual memory of the process in kilobytes.第六部分 Sys Object6.1 Linux Sys Object概述sysfs 是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。相比于 proc 文件系统,使用 sysfs 导出内核数据的方式更为统一,并且组织的方式更好,它的设计从 proc 中吸取了很多教训。sysfs 与 proc 相比有很多优点,最重要的莫过于设计上的清晰。一个 proc 虚拟文件可能有内部格式,如/proc/scsi/scsi,它是可读可写的,(其文件权限被错误地标记为了 0444 !,这是内核的一个BUG),并且读写格式不一样,代表不同的操作,应用程序中读到了这个文件的内容一般还需要进行字符串解析,而在写入时需要先用字符串格式化按指定的格式写入字符串进行操作;相比而言, sysfs 的设计原则是一个属性文件只做一件事情, sysfs 属性文件一般只有一个值,直接读取或写入。整个/proc/scsi目录在2.6内核中已被标记为过时(LEGACY),它的功能已经被相应的 /sys 属
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利工程安全检查制度及整改报告
- 小貉子产后护理知识培训课件
- 清镇市消防知识培训课件学校
- 小说课件教学课件
- 营销创新实验室创新创业项目商业计划书
- 期刊文献集成库创新创业项目商业计划书
- 小说抑扬手法课件
- 用户评价营销利用创新创业项目商业计划书
- 软件测试用例设计与实现实例
- 液晶显示模组创新创业项目商业计划书
- 肝胆外科专科知识题库及答案
- 滁州市珠龙广卫绢云母粉厂滁州市南谯区将军山绢云母矿1万吨-年露天采矿工程项目环境影响报告书
- 人民医院心血管外科临床技术操作规范2023版
- 2023年江苏小高考历史试卷
- 主要组织相容性复合体及其编码分子
- 优化物理教学策略的思考(黄恕伯)
- 中国移动-安全-L1,2,3(珍藏版)
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- scratch3.0编程校本课程
- GB/T 1685-2008硫化橡胶或热塑性橡胶在常温和高温下压缩应力松弛的测定
评论
0/150
提交评论