1.1 性能监控的简介:
性能优化就是找到系统处理中的瓶颈已经去除这些瓶颈的过程,性能优化其实就是对操作系统的各个子系统达到一种平衡的定义,这些子系统包括:
- CPU
- Memory
- IO
- Network
这些子系统之间的关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题;比如:
- 大量的页调入请求导致内存队列的拥塞(所有的任务(包括进程、线程)都会在队列中排队等待CPU来处理)
- 网卡的大吞吐量可能导致更多的CPU开销(因为任何与计算机通信数据,都必须通过网卡进行传输数据,所以网卡吞吐量大时要消耗更多的CPU)
- 大量的CPU开销又会尝试更多的内存请求(因为无论读数据还是写数据都还是新建一个对象都需要分配内存)
- 大量来在内存的磁盘写请求可能导致更多的CPU以及IO问题
所以,对一个系统进行优化,查找瓶颈来自哪个方面是关键,因为出现问题的系统可能是由别的系统引起的。
1.2 确定系统的应用类型
要找到系统的瓶颈,必须理解并分析当前系统的特点,多数系统所跑的应用类型有2类:
- IO Bound (IO 范畴):在这个范畴中的应用,一般是高负荷的内存使用以及存储系统,也就是一个大量数据处理过程
- CPU Bound(CPU 范畴):在这个范畴中,一般都是高负荷的CPU占用,CPU范畴的应用,就是一个批量处理的CPU请求以及数学计算的过程,通常是webserver、mailserver,以及其他类型服务被认为是CPU范畴的应用类型。
1.3 系统监控常用的工具
(1) vmstat 、iostat、netstat等
(2) top free sar 等