Overview of Performance Tuning

前言

为了更能通俗易懂的理解我们即将要的性能调优的话题,我在这里简单的和大家说一下我写这篇文章的写作方法 “5w+1h”方法。

5w+1h 就是对所做工作进行科学的分析,对某一工作在调查研究的基础上,就其工作内容(What)、责任者(Who)、工作岗位(Where)、工作时间(When)、怎样操作(How)以及为何这样做(Why),即”5W”、”1H”进行书面描述,并按此描述进行操作,达到完成职务任务的目标。

什么是性能调优?(what)

linux-architecture

在说什么是性能调优之前我们先来说一下,计算机的体系结构。如上图,简单来说包括三块:硬件、操作系统、应用程序。其实,性能调优就是调节这些内容,包括硬件、操作系统、应用程序。

其中,这三大方面中又包含了若干的内容。硬件包括CPU、内存、磁盘、网卡等,操作系统包括进程、虚拟内存、文件系统、网络等,应用程序常见的有Apache、MySQL、Nginx、Memcahed等。

那什么是性能调优呢?性能调优就是对计算机硬件、操作系统和应用有相当深入的了解,调节三者之间的关系,实现整个系统(包括硬件、操作系统、应用)的性能最大化,并能不断的满足现有的业务需求。

为什么需要性能调优?(why)

当一个发行版打包发送到客户手中的时候,它是为了完全兼容市场中大部分计算机而设计的。这是一个相当混杂的硬件集合(硬盘,显卡,网卡,等等)。所以Red Hat, SUSE,Mandriva,Ubuntu 和其他的一些发行版厂商选择了一些通用的设置来确保安装成功。

什么时候需要性能调优?(when)

  • 上线前(基本优化)

    包括操作系统优化和应用环境优化等,我称上线前的优化为基本优化也称为经验优化。根据你做过的项目和你工作中的经验对上线前的服务器或架构进行基本的性能优化来满足业务需求。

  • 上线后(持续优化)

    对上线后的项目进行性能监控包括服务器性能监控和服务性能监控,其中服务器性能监控包括CPU使用率、CPU负载、内存使用率、磁盘I/O、磁盘空间使用率、网络流量、系统进程等,服务性能监控包括apache、nginx、mysql等架构中所有的服务都需要进行性能监控,一但发现有问题我们都得去进行性能优化,在这个过程中我称为持续优化也称为监控优化。

什么地方需要性能调优?(where)

  • 硬件 (CPU、内存、磁盘、网卡)

  • 操作系统(进程、文件系统、内核)

  • 应用程序(Nginx、MySQL)

什么人来进行性能调优?(who)

一说起性能优化我们第一个想到的是运维工程师,他们来进行优化。其实我想说,这么说是片面的性能优化不仅仅是运维工程师的事。其实呢,性能优化是一个团队的事。我为什么这么说呢?下面我们想一下公司要做一个项目,那项目的具体流程是什么呢?可能不是很详细,但大体过程是样的:

  • 运营提出需求
  • 产品整理需求
  • 开发开发具体的业务应用
  • 运维搭建开发环境
  • QA 进行项目测试
  • 运维进行项目上线
  • 监控进行项目监控
  • ……

需要运营部、产品部、开发部、运维部、QA (测试)、监控等所有部门的参加,同样的一个项目(业务)存在性能问题,不会只是运维部门需要性能调优而是所以部门一起解决这个性能问题,这是缺一不可的。可能出现在产品,也可能出现在程序上,也可能是业务需要本身就有问题,也可能是运维的环境搭建有问题。但参加性能调优的更多的是开发、运维、测试和监控。

怎么样进行性能调优?(How)

说一说怎么进行性能调优,具体步骤如下:

  • 性能指标 –> 确认衡量标准
  • 性能测试 –> 验证性能指标
  • 性能分析 –> 找出性能瓶颈
  • 性能调优 –> 解决性能问题
  • 性能监控 –> 检验调优效果

总结

在这篇“性能优化概述”的博文中我只是给大家讲解一下具体的优化思路,帮助大家理解性能优化,这样大家更容易理解一些,让大家知道性能优化并不是传说中的那么难,难到不可动手去做,只要我们掌握好方法,什么难题都可以解决。

kai yu wechat
喜欢我~
0%