资源描述:
《linux性能监控、调优(cpu篇)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Linux性能监控、调优(CPU篇)前言:网上其实有很多关于这方面的文章,那为什么还会有此篇呢,有这么几个原因,是我翻译的动力,第一,概念和内容虽然老套,但都讲得很透彻,而且还很全面.第二,理论结合实际,其中案例分析都不错.第三,不花哨,采用的工具及命令都是最基本的,有助于实际操作.但本人才疏学浅,译文大多数都是立足于自己对原文的理解,大家也可以自己去OSCAN上找原文,如果有什么较大出入,还望留言回复,甚是感激! 1.0性能监控介绍 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,多数管理员相信看一些相关的"cookbo
2、ok"就可以实现性能优化,通常通过对内核的一些配置是可以简单的解决问题,但并不适合每个环境,性能优化其实是对OS各子系统达到一种平衡的定义,这些子系统包括了: CPU Memory IO Network 这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题.比如: 大量的页调入请求导致内存队列的拥塞 网卡的大吞吐量可能导致更多的CPU开销 大量的CPU开销又会尝试更多的内存使用请求 大量来自内存的磁盘写请求可能导致更多的CPU以及IO问题 所以要对一个系统进行优化,查找瓶颈来自哪个方面是
3、关键,虽然看似是某一个子系统出现问题,其实有可能是别的子系统导致的. 1.1确定应用类型 基于需要理解该从什么地方来入手优化瓶颈,首先重要的一点,就是理解并分析当前系统的特点,多数系统所跑的应用类型,主要为2种: IOBound(译注:IO范畴):在这个范畴中的应用,一般都是高负荷的内存使用以及存储系统,这实际上表示IO范畴的应用,就是一个大量数据处理的过程.IO范畴的应用不对CPU以及网络发起更多请求(除非类似NAS这样的网络存储硬件).IO范畴的应用通常使用CPU资源都是为了产生IO请求以及进入到内核调度的sleep状态
4、.通常数据库软件(译注:mysql,oracle等)被认为是IO范畴的应用类型. CPUBound(译注:CPU范畴):在这个范畴中的应用,一般都是高负荷的CPU占用.CPU范畴的应用,就是一个批量处理CPU请求以及数学计算的过程.通常webserver,mailserver,以及其他类型服务被认为是CPU范畴的应用类型. 1.2确定基准线统计 系统利用率情况,一般随管理员经验以及系统本身用途来决定.唯一要清楚的就是,系统优化希望达成什么效果,以及哪些方面是需要优化,还有参考值是什么?因此就建立一个基准线,这个统计数据必须是
5、系统可用性能状态值,用来比较不可用性能状态值. 在以下例子中,1个系统性能的基准线快照,用来比较当高负荷时的系统性能快照. #vmstat1 procsmemoryswapiosystemcpu rbswpdfreebuffcachesisobiboincsussywaid 1013859217932126272214244001181091921196 001385921793212627221424400001054601099 00138592179321262722142440000198624014045
6、 0013859217932126272214244000011749000100 0013859217924126272214244000176220938341380 001385921792412627221424400003581522817075 101385921792412627221424400003681447424072 001385921792412627221424400003521277912079 #vmstat1 procsmemoryswapiosystemcpu rbswpdfree
7、buffcachesisobiboincsussywaid 2014594017752118600215592011181091921196 2014594015856118604215652000468789108861400 3014620813884118600214640036003604987191900 20146388137641186002137880340034067241871300 20147092137881186002124520740013246206192800 2014736013848
8、118600211580072007206904196400 2014791213744118192210592072007206054495500 20148452139001181922092600372037263945811900 2