Linux系统性能测试与分析1-整体分析

转载 2015年07月13日 14:54:38
一、前言

  通过对系统中和性能相关的各个环节的介绍,使大家知道出现性能问题时可以从那些方面入手去查,而分析典型应用对系统资源使用的特点,让大家对应用和系统资源的依赖有更直观的认识。
  大多数的硬件性能问题主要和CPU 、IO系统(磁盘、网络)、内存相关,而且应用程序设计的缺陷(例如数据库查询的滥用)也最最常见的性能问题。
   需要注意的是,大多数情况下,虽然性能瓶颈是程序性能差或是内存不足或是磁盘瓶颈等各种原因引起,但最终表现出的结果就是CPU 耗尽、系统负载极高、响应迟缓、甚至暂时失去响应,因此我们观察系统状况时,最先看的就是系统负载和CPU空闲度。当你阅读完了这遍文档以后就会有一个对系统分析的思路。

二、性能分析的目的

  ● 找出系统性能瓶颈
    1)硬件瓶颈
    2)软件瓶颈
  ● 提供性能优化方案
    1)升级硬件
    2)改进系统结构
  ● 达到合理的软硬件配置
  ● 使系统资源使用达到平衡(遗憾的是解决一个性能瓶颈,往往又会出现另外的瓶颈或者其他问题,所以      性能优化更加切实的目标是做到在一定范围内使系统的各项资源使用趋向合理和保持一定的平衡

   系统运行良好的时候恰恰也是各项资源达到了一个平衡体,任何一项资源的过渡使用都会造成平衡体系破坏,从而造成系统负载极高或者响应迟缓。比如CPU过渡使用会造成大量进程等待CPU资源、系统响应变慢等问题,等待又会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存使用,使用虚拟内存又会造成磁盘IO增加和CPU开销增加(用于进程切换、缺页处理的CPU 开销)。

三、性能相关的各个环节
  
   3.1 硬件资源

   ● CPU
    1)是否使用SMP。
    2)单颗CPU的性能对依赖CPU的某些应用的影响很严重,比如数据库的查询处理。
  
   ● 内存
    1)物理内存
       物理内存不够时会使用交换内存。
    2)交换内存
       使用交换内存会带来磁盘IO和使CPU的开销增加。
 
   ● IO系统 (存储系统)
1) SCSI 磁盘
2) ATA/SATA 磁盘
3) RAID 磁盘阵列(RAID0 , RAID1 , RAID5 , RAID0+1 )

   ● 一些经验
       1)小文件读写的性能瓶颈是磁盘的寻址(随机读写性能更差),评估的标准是tps
      2)大文件读写的性能瓶颈是带宽,评估的标准是持续的读写速度
      3)Linux可以利用空闲内存作文件系统访问的cache,因此系统内存越大存储系统的性能也越好
  
   ● Network
     网络是linux中最复杂的子系统,有太多的因素影响其性能。

   ● 带宽
   1)网络带宽
   2)SCSI 总线带宽
     大文件访问时SCSI 的带宽瓶颈
   3)系统总线带宽

  3.2 操作系统
  ● SMP 性能

  ● VM 性能

  ● IO 性能(存储设备、网络设备、异步IO )

  ● 文件系统性能(大文件优化、小文件优化、写优化、读优化、网络文件系统)

  ● 多线程性能

  3.3 服务器软件
      根据各个服务器的不同而定制不同的软件,这里就不多说了,服务器软件实在是太多了。

  3.4 开发平台/ 中间件软件/ 框架软件
      没有什么规范的定义,按情况而定。

  3.5 应用程序
      一些应用软件。

四、典型应用对系统资源使用的特点

  4.1 动态内容为主的Web 应用
      
       1)频繁执行程序,如 Perl , PHP , Java 等,消耗CPU 严重。

       2)提供并发用户访问,因此系统进程数多,消耗内存多,当内存不足时,使用交换内存也会增加CPU 的开销。

       3)磁盘的写IO 比较频繁(主要为随机写),比如生成cache 文件,更新session 文件等。

       4)内存充足时读取的内容可以被cache 住,cache 的命中率和文件更新的频繁程度成反比,磁盘的读IO 相对较小 。

  4.2 静态内容为主的Web 应用 (如Squid Cache )
 
       1)网络带宽瓶颈。

       2)小文件的随机读取频繁,内存充足时可以缓解磁盘随机读的压力。

       3) 系统内存不足时磁盘IO 量会比较大(读、写、交换内存),因此增加CPU 的开销。

  4.3 数据库应用

       1)数据库查询语句复杂,大量的 where 子句,order by , group by 排序等,CPU 容易出现瓶颈。

       2)表太大时,查询遍历全表造成磁盘读的IO 量大,容易出现读IO 等待的情况。

       3)数据更新量大或者更新频繁时,造成磁盘写的IO 量大。

       4)内存不足时频繁使用交换内存。

  4.4 软件下载

       1)网络带宽瓶颈

       2)存储系统带宽瓶颈(读)

  4.5 流媒体服务

       1)网络带宽瓶颈

       2)存储系统带宽瓶颈(读)

五、系统使用和优化的原则

  5.1 系统监控和数据收据

      对资源的使用状况作长期的监控和数据收集

      Snmp+MRTG (网络流量监控)

      Sar (系统资料监控及收集)

  5.2 优化建议

      程序的优化和系统结构的优化比硬件的性能优化更有效

  5.3 限制使用系统资源

      避免不受限制的使用系统资源

      设置各项服务对资源的使用限额,如Apache , MySQL ,PHP 等

  5.4 保留空闲资源及资源均衡

      始终保留一定量的空闲资源

      多少合适?根据应用的特点,比如是否有突发性使用增长?

      日常情况下,保留至少 60% 的系统资源,以应付突发使用增长。

      日常情况下,资源使用率达到 80% 时,你必须有所行动了,尤其是web 应用。

      系统硬件达到合理的配置(以适合应用的特点为依据,资源消耗均衡为目标)

      系统性能的水桶理论

      应用软件对资源的使用要均衡(理想目标),怎么样就算是均衡了?我也在摸索中……

      理想状况为:CPU 消耗到50% 的时候,磁盘的带宽也到50% ,磁盘的tps 也到50% ,内存使用也到50% (除去可以提供给cache 的内存)

Linux系统性能测试与分析1-整体分析

一、前言   通过对系统中和性能相关的各个环节的介绍,使大家知道出现性能问题时可以从那些方面入手去查,而分析典型应用对系统资源使用的特点,让大家对应用和系统资源的依赖有更直观的认识。   ...
  • wanglha
  • wanglha
  • 2014年11月10日 10:40
  • 263

Linux系统性能测试与分析

1、前言 通过对系统中和性能相关的各个环节的介绍,使大家知道出现性能问题时可以从那些方面入手去查,而分析典型应用对系统资源使用的特点,让大家对应用和系统资源的依赖有了更直观的认识。 大多数...
  • xiangyuqxq
  • xiangyuqxq
  • 2013年09月09日 20:44
  • 1166

《性能测试诊断分析与优化》目录

第1篇  性能测试基础篇第1章  性能测试基础... 21.1  性能测试的重要意义... 21.1.1  功能测试和性能测试... 31.1.2  项目组不同角色眼中的软件性能... 31.1.3 ...
  • Testing_is_believing
  • Testing_is_believing
  • 2012年05月07日 17:42
  • 2739

Linux 性能测试与分析

源自 http://blog.sina.com.cn/s/blog_71ad0d3f01019uzl.html Linux 性能测试与分析 Revision History   ...
  • wdwbw
  • wdwbw
  • 2012年10月15日 17:32
  • 5939

性能测试之瓶颈分析

(7)性能测试瓶颈分析   性能瓶颈分析构成图:
  • zhouyou1986
  • zhouyou1986
  • 2014年07月06日 16:59
  • 4847

整体网分析讲义

参考《整体网分析讲义——UCINET软件应用》刘军编著,《整体网分析讲义——UCINET 软件应用》,第二界社会网与关系管理研讨会资料,哈尔滨:哈尔滨工程大学社会学系,2007年1 月18日。 什么...
  • whucv
  • whucv
  • 2012年09月03日 14:47
  • 2629

【性能】性能测试数据分析

TPS:每秒处理事务数。一般用于衡量服务器的处理能力,或者说服务器的吞吐率 场景:测试场景 系统资源:主要是CPU、内存、IO 成功率:超时、业务失败 耗时:业务处理时间 性能指标-vmstatvms...
  • lluozh2015
  • lluozh2015
  • 2016年08月08日 21:08
  • 1190

性能测试分析思路(未完待续)

性能测试思路
  • xkhgnc_6666
  • xkhgnc_6666
  • 2016年07月31日 11:14
  • 754

性能测试及分析调优准则

7.1附录1:执行性能测试基本原则   原则一:测试前,要确认系统级的关键参数已经基本配置正确(例如:数据库、WEB容器、线程池、JDBC连接池、对象池、JVM、操作系统、应用系统等配置);   ...
  • wma1314
  • wma1314
  • 2016年03月18日 14:40
  • 633

性能测试结果分析

性能测试工程师基本上都能够掌握利用测试工具来作负载、压力测试,但多数人对怎样去分析工具收集到的测试结果感到无从下手,下面我就把个人工作中的体会和收集到的有关资料整理出来,希望能对大家分析测试结果有所帮...
  • jasonteststudy
  • jasonteststudy
  • 2014年09月16日 10:49
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux系统性能测试与分析1-整体分析
举报原因:
原因补充:

(最多只允许输入30个字)