Sunday, October 28, 2012

性能优化工作概论

  1. 需要非常广泛的背景知识,最好是经验丰富的程序员,具备性能调优经验。
    • 存储: HBA, iSCCI, NAS
    • 网络:基础的交换机配置,懂七/四层协议
    • 服务器:了解服务器构成,电源/主板
    • LAMP,JVM:基础配置,调优,懂内核中的各个模块原理 
  2. 会脚本语言,利用好各种语言方便自己的开发
    • C/C++:基础
    • Bash/Python/Perl:基础
    • PHP/HTML:简单的C/S网页应用
    • JS: 简单的JS脚本
    • Java:会写简单的应用,懂JVM的基本参数
  3. 懂体系架构,看得懂硬件的SPEC
    • 能画出X86系统的几个基础构件
    • CPI/PL:基础,PPW
    • TLB:如何工作
    • hello, world 是如何工作的(instruction level)
  4. 方法学
    • 性能优化是一个不断循环进化的过程:收集数据->发现瓶颈->优化->收集数据…
    • 数据可以分成三个层次
      • Application:各种benchmark报告的分数
      • System:系统收集到的设备使用率,如CPU%, IO
      • Micro Arch:Cache/TLB的miss
    • 如何去分析数据:data driven。看scaling的时候数据表现是否正常。

No comments:

Post a Comment