在我们的技术咨询生涯中,最常碰到的三个性能相关的服务请求是:如何确认美国服务器是否达到了性能最佳的状态、找出某条语句为什么执行不够快,以及诊断被用户描述成“停顿”、“堆积”或者“卡死”的某些间歇性疑难故障。本章将主要针对这三个问题做出解答。我们将提供一些工具和技巧来优化整机的性能、优化单条语句的执行速度,以及诊断或者解决那些很难观察到的问题(这些问题用户往往很难知道其根源,有时候甚至都很难察觉到它的存在)。

这看起来是个艰巨的任务,但是事实证明,有一个简单的方法能够从噪声中发现苗头。这个方法就是专注于测量美国服务器的时间花费在哪里,使用的技术则是性能剖析(profiling).在本章,我们将展示如何测量系统并生成剖析报告,以及如何分析系统的整个堆栈(stack), 包括从应用程序到数据库美国服务器到单个查询。

首先我们要保持空杯精神,抛弃掉- 些关于性能的常见的误解。这有一定的难度,下面我们一起通过一些例子来说明问题在哪里。

性能优化简介

问10个人关于性能的问题,可能会得到10个不同的回答,比如“每秒查询次数”、"CPU利用率”、“可扩展性”之类。这其实也没有问题,每个人在不同场景下对性能有不同的理解,但本章将给性能一个正式的定义。我们将性能定义为完成某件任务所需要的时间度量,换句话说,性能即响应时间,这是一个非常重要的原则。我们通过任务和时间而不是资源来测量性能。数据库美国服务器的目的是执行SQL语句,所以它关注的任务是查询或者语句,如SELECT, UPDATE, DELETE 等作。数据库美国服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。

还有另外一个问题:什么是优化?我们暂时不讨论这个问题,而是假设性能优化就是在一定的工作负载下尽可能地降低响应。很多人对此很迷茫。假如你认为性能优化是降低CPU利用率,那么可以减少对资源的使用。但这是一个陷阱,资源是用来消耗并用来工作的,所以有时候消耗更多的资源能够加快查询速度。很多时候将使用老版本InoDB引擎的MysSQL升级到新版本后,CPU利用率会上升得很厉害,这并不代表性能出现了问题,反而说明新版本的InnoDB对资源的利用率上升了。查询的响应时间则更能体现升级后的性能是不是变得更好。版本升级有时候会带来一此bug.比如不能利用某些索引从而导致CPU利用率上升。CPU利用率只是一种现象, 而不是很好的可度量的目标。

同样,如果把性能优化仅仅看成是提升每秒查询量,这其实只是吞吐量优化。吞吐量的提升可以看作性能优化的副产品。对查询的优化可以让

所以如果目标是降低响应时间,那么就需要理解为什么美国服务器执行查询需要这么多时间,然后去减少或者消除那些对获得查询结果来说不必要的工作。也就是说,先要搞清楚时间花在哪里。这就引申出优化的第二个原则:无法测量就无法有效地优化。所以第一步应该测量时间花在什么地方。

我们观察到,很多人在优化时,都将精力放在修改些东东西上,却很少去进行精确的测量。我们的做法完全相反,将花费非常多,甚至90%的时间来测量响应时间花在哪里。如果通过测量没有找到答案,那要么是测量的方式错了,要么是测量得不够完整。如果测量了系统中完整而且正确的数据,性能问题一般都能暴露出来,对症下药的解决方案也就比较明了。测量是项很有挑战性的工作, 并且分析结果也同样有挑战性,测出时间花在哪里,和知道为什么花在那里,是两码事。

前面提到需要合适的测量范围,这是什么意思呢?合适的测量范围是说只测量需要优化的活动。有两种比较常见的情况会导致不合适的测量:

(1)在错误的时间启动和停止测量。

(2)测量的是聚合后的信息,而不是目标活动本身。

例如,一个常见的错误是先查看慢查询,然后又去排查整个美国服务器的情况来判断问题在哪里。如果确认有慢查询,那么就应该测量慢查询,而不是测量整个美国服务器。测量的应该是从慢查询的开始到结束的时间,而不是查询之前或查询之后的时间。

完成一项任务所需要的时间可以分成两部分:执行时间和等待时间。如果要优化任务的执行时间,最好的办法是通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。而优化任务的等待时间则相对要复杂一些,因为等待有可能是由其他系统间接影响导致,任务之间也可能由于争用磁盘或者CPU资源而相互影响。根据时间是花在执行还是等待上的不同,诊断也需要不同的工具和技术。

优化美国服务器,美国服务器性能优化相关推荐

  1. MySQL第12天:MySQL索引优化分析之性能优化案例实践

    MySQL索引优化分析之性能优化案例实践 执行计划中各select_type含义可以看:MySQL第11天:MySQL索引优化分析之性能分析 https://weibo01.blog.csdn.net ...

  2. 服务器性能优化之网络性能优化

    hi ,大家好,今天分享一篇后台服务器性能优化之网络性能优化,希望大家对Linux网络有更深的理解. 曾几何时,一切都是那么简单.网卡很慢,只有一个队列.当数据包到达时,网卡通过DMA复制数据包并发送 ...

  3. 服务器性能优化和Mysql性能优化

    服务器性能优化和Mysql性能优化 影响性能的几个因素 服务器硬件 CPU 内存 IO子系统 服务器系统 CentOS系统参数优化 sysctlconf 优化 limitconf参数优化 磁盘调度策略 ...

  4. Web性能优化实践——应用层性能优化

    随着公司项目的进一步推广,用户数量的增加,已经面临着单台服务器不能负载的问题. 这次的优化由于时间关系主要分两步走,首先优化应用层代码以提高单台服务器的负载和吞吐率.之后再进行分表,引入队列.MemC ...

  5. 性能优化指南:性能优化的一般性原则与方法

    作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统.本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的 ...

  6. css html 优化,CSS Animation性能优化

    CSS Animation是实现Web Animation方法之一,其主要通过@keyframes和animation-*或者transition来实现一些Web动效.不过今天我们聊的不是怎么制作We ...

  7. ++ 优化 频繁new_Java性能优化的50个细节,我必须分享给你!

    ↑↑↑点上方蓝字关注并星标⭐「IT技术思维」 一起培养顶尖技术思维 来源:blog.csdn.net/dongnan591172113/article/details/51790428 公众号:Jav ...

  8. python linux 优化_Python 代码性能优化技巧

    Python 性能优化除了改进算法,选用合适的数据结构之外,还有几种关键的技术,比如将关键 python 代码部分重写成 C 扩展模块,或者选用在性能上更为优化的解释器等,这些在本文中统称为优化工具. ...

  9. MySQL的主动优化和被动优化_MySQL“被动”性能优化汇总!

    年少不知优化苦,遇坑方知优化难. --村口王大爷 本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范 ...

  10. java性能优化方案_Java性能优化要点

    Java性能优化要点 本文介绍如何通过以下几点从Java中挤压出性能,该大部分经验来自于Netty作者. JITJava即时编译器 当Java执行runtime环境时,每遇到一个新的类,JIT编译器在 ...

最新文章

  1. python支持double吗_python列表理解为double
  2. VTK:图像高斯平滑用法实战
  3. 2016年物联网市场5大趋势
  4. OpenGL 坐标变换
  5. 商品详细信息的代码html_Web前端,你该有的代码规范
  6. 计算机word基本知识选择题,2017计算机基础考试选择题「附答案」
  7. 为什么我们需要Q#?
  8. 前端-requests-flask对应关系 args
  9. unity将本地文件上传到mysql_unity上传数据到数据库
  10. 小学的题 大学的解法
  11. Nginx负载均衡如何进行配置
  12. SRM596 DIV2 500
  13. 毕设题目:Matlab风电功率预测
  14. java利用随机数简单发牌,!!!!!!!java新手求助,请教一个数组下标越界异常的问题...
  15. C语言EasyX详解(小球碰撞)
  16. 用FileZillaServer搭建FTP服务服务端、客户端
  17. android app 开源项目,20+个很棒的Android开源项目
  18. cmd 环境下载文件的几种方法
  19. 地址栏中的#是什么意思
  20. 试答一道经典的腾讯面试题:QQ的MVP

热门文章

  1. BoolToVisibilityConverter In WPF
  2. 【WPF】如何获取命令行参数
  3. Quartz+Topshelf 作业
  4. ZooKeeper之(一)ZooKeeper是什么
  5. 数组、字典转json串,不支持字符串
  6. xv6 - simple modern os for education purpose.
  7. (转)WriteOnce and RunAnyWhere
  8. UI Framework-1: Ash Color Chooser
  9. PHP正则匹配6到16位字符组合(且只能为数字、字母、下划线)
  10. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-在UI中应用DataUIMapper组件...