0 性能监控介绍 性能优化就是找到系统处理中的瓶颈以及去除这些的过程 ,多数管理员相信看一些相关的 "cook book" 就可以实现性能优化,通常通过对内核的一些配置是可以简单的解决问题 ,但并不适合每个环境 ,性能优化其实是对 OS 各子系统达到一种平衡的定义,这些子系统包括了: CPU Memory IO Network 这些子系统之间关系是相互彼此依赖的 ,任何一个高负载都会导致其他子系统出现问题
比如: 大量的页调入请求导致内存队列的拥塞 网卡的大吞吐量可能导致更多的 CPU 开销 大量的 CPU 开销又会尝试更多的内存使用请求 大量来自内存的磁盘写请求可能导致更多的 CPU 以及 IO 问题 所以要对一个系统进行优化,查找瓶颈来自哪个方面是关键,虽然看似是某一个子系统出现问题,其实有可能是别的子系统导致的
1 确定应用类型 基于需要理解该从什么地方来入手优化瓶颈 ,首先重要的一点 ,就是理解并分析当前系统的特点 ,多数系统所跑的应用类型 ,主要为 2 种: IO Bound(IO 范畴): 在这个范畴中的应用,一般都是高负荷的内存使用以及存储系统,这实际上表示 IO 范畴的应用,就是一个大量数据处理的过程
IO 范畴的应用不对 CPU 以及网络发起更多请求(除非类似 NAS这样的网络存储硬件)
IO 范畴的应用通常使用 CPU 资源都是为了产生 IO 请求以及进入到内核调度的sleep 状态
通常数据库软件(例如 mysql,oracle 等)被认为是 IO 范畴的应用类型
CPU Bound(CPU 范畴): 在这个范畴中的应用,一般都是高负荷的 CPU 占用
CPU 范畴的应用,就是一个批量处理 CPU 请求以及数学计算的过程
通常 web server,mail server,以及其他类型服务被认为是 CPU 范畴的应用类型