系统性能分析和优化ppt课件

上传人:我*** 文档编号:150528518 上传时间:2020-11-06 格式:PPT 页数:74 大小:256KB
返回 下载 相关 举报
系统性能分析和优化ppt课件_第1页
第1页 / 共74页
系统性能分析和优化ppt课件_第2页
第2页 / 共74页
系统性能分析和优化ppt课件_第3页
第3页 / 共74页
系统性能分析和优化ppt课件_第4页
第4页 / 共74页
系统性能分析和优化ppt课件_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《系统性能分析和优化ppt课件》由会员分享,可在线阅读,更多相关《系统性能分析和优化ppt课件(74页珍藏版)》请在金锄头文库上搜索。

1、系统性能分析和优化,童剑 2006/03/21 msn: ,前言,很高兴能有这样的机会,把我自己多年工作中对服务器硬件、软件方面的性能分析的经验和体会,以及性能优化的经验和各位朋友做一次分享。 这份ppt的内容组织大致是这样的,通过对系统中和性能相关的各个环节的介绍,使大家知道出现性能问题时可以从那些方面入手去查,而分析典型应用对系统资源使用的特点,让大家对应用和系统资源的依赖有了更直观的认识,然后我会介绍常见的分析及监控系统资源时使用的工具,这个环节应该是最主要的,最后我会举一个实际发生过的系统性能瓶颈分析和优化的案例,作为一个实践和总结。 本文涉及的内容基于Gnu/Linux系统平台,但关

2、于性能优化分析和优化的思路也能适用于其他系统平台。,我们将会讨论下列7个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用和优化的原则 典型应用对系统资源使用的特点 常见的性能分析工具介绍 性能分析及优化的案例,开始第1个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用和优化的原则 典型应用对系统资源使用的特点 常见的性能分析工具介绍 性能分析及优化的案例,性能分析的目的,找出系统性能瓶颈 硬件瓶颈 软件瓶颈 提供性能优化方案 升级硬件 改进系统结构 达到合理的硬件和软件配置 使系统资源使用达到平衡,性能分析的目的,但遗憾的是 解决一个性能瓶颈,往往又会出

3、现另外的瓶颈或者其他问题,所以性能优化更加切实的目标是做到在一定范围内使系统的各项资源使用趋向合理和保持一定的平衡。 系统运行良好的时候恰恰也是各项资源达到了一个平衡体,任何一项资源的过渡使用都会造成平衡体系破坏,从而造成系统负载极高或者响应迟缓。比如CPU过渡使用会造成大量进程等待CPU资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存使用,使用虚拟内存又会造成磁盘IO增加和CPU开销增加(用于进程切换、缺页处理的CPU开销),开始第2个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用和优化的原则 典型应用对系统资源使用的特点

4、 常见的性能分析工具介绍 性能分析及优化的案例,性能分析相关的人,系统管理员 大型应用的系统结构设计人员 软件开发人员,性能分析相关的人,系统管理员 掌握系统运行状况(负载) 掌握系统资源使用情况(硬件) 掌握应用程序对资源的使用情况(应用程序执行效率,反馈给应用开发人员) 有针对性的开展服务器性能优化(硬件、软件、软件配置),性能分析相关的人,系统架构设计人员 了解程序执行效率 了解系统架构中的性能瓶颈,优化系统结构 设计更好的应用系统架构,性能分析相关的人,软件开发人员 了解程序执行效率 改进程序逻辑、改进性能,开始第3个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用

5、和优化的原则 典型应用对系统资源使用的特点 常见的性能分析工具介绍 性能分析及优化的案例,性能相关的各个环节,硬件资源 操作系统 服务器软件 开发平台/中间件软件/框架软件 应用程序,性能相关的-硬件资源,CPU 内存 存储系统 带宽,性能相关的-硬件资源,CPU 是否使用SMP 单颗CPU的性能对依赖CPU的某些应用的影响很严重,比如数据库的查询处理,性能相关的-硬件资源,内存 物理内存 物理内存不够时会使用交换内存 交换内存 使用交换内存会带来磁盘IO和CPU的开销增加,性能相关的-硬件资源,存储系统 SCSI磁盘 ATA/SATA磁盘 RAID磁盘阵列(RAID0, RAID1, RAI

6、D5, RAID0+1) 一些经验 小文件读写的性能瓶颈是磁盘的寻址(随机读写性能更差),评估的标准是tps 大文件读写的性能瓶颈是带宽,评估的标准是持续的读写速度 Linux可以利用空闲内存作文件系统访问的cache,因此系统内存越大存储系统的性能也越好,性能相关的-硬件资源,带宽 网络带宽 SCSI总线带宽 大文件访问时SCSI的带宽瓶颈 系统总线带宽,性能相关的-操作系统,SMP性能 VM性能 IO性能(存储设备、网络设备、异步IO) 文件系统性能(大文件优化、小文件优化、写优化、读优化、网络文件系统) 多线程性能,开始第4个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系

7、统使用和优化的原则 典型应用对系统资源使用的特点 常见的性能分析工具介绍 性能分析及优化的案例,系统使用和优化的原则,对资源的使用状况作长期的监控和数据收集 Snmp+MRTG Sar 程序的优化和系统结构的优化比硬件的性能优化更有效 避免不受限制的使用系统资源 设置各项服务对资源的使用限额,如Apache, MySQL,PHP等,系统使用和优化的原则,始终保留一定量的空闲资源 多少合适?根据应用的特点,比如是否有突发性使用增长? 日常情况下,保留至少 60% 的系统资源,以应付突发使用增长。 日常情况下,资源使用率达到 80% 时,你必须有所行动了,尤其是web应用。 系统硬件达到合理的配置

8、(以适合应用的特点为依据,资源消耗均衡为目标) 系统性能的水桶理论,系统使用和优化的原则,应用软件对资源的使用要均衡(理想目标) 怎么样就算是均衡了?我也在摸索中 理想状况为:CPU消耗到50%的时候,磁盘的带宽也到50%,磁盘的tps也到50%,内存使用也到50%(除去可以提供给cache的内存),开始第5个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用和优化的原则 典型应用对系统资源使用的特点 常见的性能分析工具介绍 性能分析及优化的案例,典型应用对系统资源使用的特点,声明 这部分内容主要是本人在网站工作多年的一些实践经验积累, 所以这些经验并不完全适用于其他的应用环

9、境。 在我的经验中,大多数的硬件性能问题主要和CPU、磁盘、内存相关, 还没有遇到因为开发语言的运行效率对整个应用的性能造成影响,而应用程序设计的缺陷和数据库查询的滥用反倒是最最常见的性能问题。 需要注意的是,大多数情况下,虽然性能瓶颈的起因是程序性能差或者是内存不足或者是磁盘瓶颈等各种原因,但最终表现出的结果就是CPU耗尽,系统负载极高,响应迟缓,甚至暂时失去响应,因此我们观察服务器状况时,最先看的就是系统负载和CPU空闲度。,典型应用对系统资源使用的特点,动态内容为主的Web应用 静态内容为主的Web应用 (如Squid Cache) 数据库应用 软件下载 流媒体服务,典型应用对系统资源使

10、用的特点,动态内容为主的Web应用 频繁执行程序,如 Perl, PHP, Java 等,消耗CPU严重 提供并发用户访问,因此系统进程数多,消耗内存多,当内存不足时,使用交换内存也会增加CPU的开销 磁盘的写IO比较频繁(主要为随机写),比如生成cache文件,更新session文件等。 内存充足时读取的内容可以被cache住,cache的命中率和文件更新的频繁程度成反比,磁盘的读IO相对较小,典型应用对系统资源使用的特点,静态内容为主的Web应用 (如Squid Cache) 网络带宽瓶颈 小文件的随机读取频繁,内存充足时可以缓解磁盘随机读的压力 系统内存不足时磁盘IO量会比较大(读、写、

11、交换内存),因此增加CPU的开销,典型应用对系统资源使用的特点,数据库应用 数据库查询语句复杂,大量的 where 子句,order by, group by 排序等,CPU容易出现瓶颈 表太大时,查询遍历全表造成磁盘读的IO量大,容易出现读IO等待的情况 数据更新量大或者更新频繁时,造成磁盘写的IO量大 内存不足时频繁使用交换内存,典型应用对系统资源使用的特点,软件下载 网络带宽瓶颈 存储系统带宽瓶颈(读) 流媒体服务 网络带宽瓶颈 存储系统带宽瓶颈(读),开始第6个话题,性能分析的目的 性能分析相关的人 性能相关的各个环节 系统使用和优化的原则 典型应用对系统资源使用的特点 常见的性能分析

12、工具介绍 性能分析及优化的案例,常见的性能分析工具介绍,Vmstat Top Free Uptime sysstat 工具包 Iozone Strace 希望看完以上工具的使用说明,让你能够知道如何判断系统瓶颈在那里、内存是否够用、CPU是否够用、磁盘IO是否够用、网络和磁盘带宽是否够用等问题。,工具介绍-vmstat,vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下问切换、CPU使用等。系统性能分析工具中,我使用最多的是这个,除了 sysstat 工具包外,这个工具能查看的系统资源最多。 对于 Linux 的性能分析,100%理

13、解 vmstat 输出内容的含义,那你对系统性能分析的能力就算是基本掌握了。 我这里主要说明一下这个命令显示出的部分数据代表的含义,和它反映出系统相关资源的状况。输出内容共有 6 类,分别说明如下。,工具介绍-vmstat,Vmstat的输出格式如下(CentOS 3.3),工具介绍-vmstat,Procs r: 运行的和等待(CPU时间片)运行的进程数,这个值也可以判断是否需要增加CPU(长期大于1) b: 处于不可中断状态的进程数,常见的情况是由IO引起的,工具介绍-vmstat,Memory swpd: 切换到交换内存上的内存(默认以KB为单位) 如果 swpd 的值不为0,或者还比较

14、大,比如超过100M了,但是 si, so 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。 free: 空闲的物理内存 buff: 作为buffer cache的内存,对块设备的读写进行缓冲 cache: 作为page cache的内存, 文件系统的cache 如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。,工具介绍-vmstat,Swap si: 交换内存使用,由磁盘调入内存 so: 交换内存使用,由内存调入磁盘 内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响。

15、磁盘IO和CPU资源都会被消耗。 我发现有些朋友看到空闲内存(free)很少或接近于0时,就认为内存不够用了,实际上不能光看这一点的,还要结合si,so,如果free很少,但是si,so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。,工具介绍-vmstat,Io bi: 从块设备读入的数据总量(读磁盘) (KB/s), bo: 写入到块设备的数据总理(写磁盘) (KB/s) 随机磁盘读写的时候,这2个 值越大(如超出1M),能看到CPU在IO等待的值也会越大,工具介绍-vmstat,System in: 每秒产生的中断次数 cs: 每秒产生的上下文切换次数 上面这2个值越大

16、,会看到由内核消耗的CPU时间会越多,工具介绍-vmstat,Cpu us: 用户进程消耗的CPU时间百分比 us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了(比如 PHP/Perl) sy: 内核进程消耗的CPU时间百分比 sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 wa: IO等待消耗的CPU时间百分比 wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。 id: CPU处在空闲状态时间百分比,工具介绍-vmstat,情景分析 这个vmstat的输出那些信息值得关注? Procs r: 运行的进程比较多,系统很繁忙 Io bo: 磁盘写的数据量稍大,如果是大文件的写,10M以内基本不用担心,如果是小文件写2M以内基本正常 Cpu us: 持续大于50,服务高峰期可以接受 Cpu wa: 稍微有些高 Cpu id:持续小于50,服务高峰期可以接受,工具介绍-top,这个命

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号