本文译自Wikipedia的Performance tuning词条,原词条中的不少链接和扩展内容非常值得一读,翻译过程中暴露了个人工程学思想和英语水平的不足,翻译后的内容也失去很多准确性和丰富性,需要在之后的时间继续细读。

Performance Tuning特指计算机系统的性能优化工作。它通常是根据某个现实或潜在的性能问题而发起的。绝大部分系统都会因为负载的升高而导致性能下降,一个系统对于负载的可承受能力称为可扩展性(scalability),调整系统使其可以承受更大的负载就是performance tuning代名词.

系统性的调优工作可以遵循以下步骤:

  • Assess the problem and establish numeric values that categorize acceptable behavior.
  • Measure the performance of the system before modification.
  • Identify the part of the system that is critical for improving the performance. This is called the bottleneck.
  • Modify that part of the system to remove the bottleneck.
  • Measure the performance of the system after modification.
  • If the modification makes the performance better, adopt it. If the modification makes the performance worse, put it back the way it was.
  • 评估问题,为系统分类建立可接受的度量指标
  • 测量系统调整前的性能表现
  • 分析系统运行性能的瓶颈
  • 调整系统消除瓶颈
  • 测量系统调整后的性能表现
  • 如果性能改善,则采纳调整方法;如果未得到改善,回滚调整措施

这种测度-评估-改进-学习的工作方法来自QA体系。

性能问题往往体现为系统运行缓慢或者失去响应,它往往是因为负载过高,导致系统某些组件达到了其最大响应能力的限制,这些限制我们称其为系统瓶颈。有一些方法可以用以改进系统性能,其中包括code optimization,configuration optimization,caching strategy,load balancing,distributed computing和self-tuning。

性能分析:
性能分析也叫做profiling,是一项采集程序运行数据以研究程序运行情况的工作。它的目的是分析和判断对程序的哪个部分进行优化。profiler是指分析程序运行情况的工具,特别是分析函数运行的频度和持续时间。最早的profiler出现在1970s,人们往往根据它们的输出信息的类型和数据采集的方式对他们进行分类。

性能工程:
性能工程学科包括角色、技能、活动、实践、工具和可交付成果,用于满足设计系统的非功能性需求,如增加业务收入,减少系统故障和项目延期,避免不必要的资源和工作投入。几种常见的不同方法的活动:

  • 识别关键流程
  • 细化流程的用例和系统容量说明。
  • 制度建设,包括性能调优。
  • 构建系统的部署
  • 服务管理,包括系统部署后的实施活动

self-tuning:
self-tuning系统能够优化其内部的运行参数,以最大化或最小化目标函数的实现,例如最大化效率或最小化错误。self-tuning系统通常表现出非线性自适应控制。self-tuning系统已经成为航空航天工业几十年来的一个品质证明,像这类反馈是生成最优非线性多变量控制流程所必需的。典型例子如TCP协议的拥塞控制.

Performance Tuning的更多相关文章

  1. Spark SQL 之 Performance Tuning & Distributed SQL Engine

    Spark SQL 之 Performance Tuning & Distributed SQL Engine 转载请注明出处:http://www.cnblogs.com/BYRans/ 缓 ...

  2. IBM HTTP Server Performance Tuning

    IBM HTTP Server Performance Tuninghttp://publib.boulder.ibm.com/httpserv/ihsdiag/ihs_performance.htm ...

  3. 30 分钟快快乐乐学 SQL Performance Tuning

    转自:http://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html 有些程序员在撰写数据库应用程序时,常专注于 OOP 及各种 fra ...

  4. PostgreSQL Hardware Performance Tuning

    Bruce Momjian POSTGRESQL is an object-relational database developed on the Internet by a group of de ...

  5. Performance Tuning guide 翻译 || 前言

    CSDN 对格式支持比較弱,能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. 前言Preface 包含例如以下几个小节 l Au ...

  6. Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性

    CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide  ...

  7. mysql优化---优化工具MySQL performance tuning primer script

    MySQL performance tuning primer script一个简单好用的mysql优化工具,其实一个shell脚本 下载: $ wget http://www.day32.com/M ...

  8. 老李分享: Oracle Performance Tuning Overview 翻译下

    1.2性能调优特性和工具 Effective data collection and analysis isessential for identifying and correcting perfo ...

  9. 老李分享: Oracle Performance Tuning Overview 翻译

    老李分享: Oracle Performance Tuning Overview 翻译   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工 ...

随机推荐

  1. Python高手之路【四】python函数装饰器

    def outer(func): def inner(): print('hello') print('hello') print('hello') r = func() print('end') p ...

  2. Java初始化过程

    这篇文章主要讲解Java在创建对象的时候,初始化的顺序.主要从以下几个例子中讲解: 继承关系中初始化顺序 初始化块与构造器的顺序 已经加载过的类的初始化顺序 加载父类,会不会加载子类 创建子类对象会不 ...

  3. 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)

    运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...

  4. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

  5. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  6. webpack+react+redux+es6开发模式

    一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...

  7. pandas基础-Python3

    未完 for examples: example 1: # Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEM ...

  8. 手动导入swift三方danielgindi/Charts到OC工程中教程

    1.到github网址上下载zip压缩包https://github.com/danielgindi/Charts 2.然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让拖xcodeproj ...

  9. Win7安装MySQL-5.7.16过程

    1.在C盘新建MYSQL文件夹:2.将mysql-5.7.16-winx64拷贝到C:\MYSQL文件夹下,更名为mysql-5.7.16:3.在mysql-5.7.16目录下,建my.ini文件,内 ...

  10. ORACLE中STATUS为INACTIVE但是SERVER为SHARED状态的会话浅析

    我们知道当ORACLE数据库启用共享服务器模式时,通过共享服务器模式连接到数据库的会话是有一些特征的.在v$session里面,其SERVER的状态一般为SHARED和NONE, 为SHARED时,表 ...