写点什么

性能优化:一个全栈问题

  • 2015-04-21
  • 本文字数:738 字

    阅读完需:约 2 分钟

Ronald Bradford 是一名有 26 年行业经验的 IT 专家,他撰写了 Effective MySQL 系列书籍并已被翻译为中文。近日,他在个人博客上发表了一篇探讨性能优化的文章。他认为,性能优化是一个全栈问题,提高 Web 系统的性能需要了解整个技术栈的运转和交互。他列举了一些快速提升系统性能的常用技巧,包括:

  • 使用 CDN 资源;
  • 压缩内容;
  • 减少请求次数(Web、缓存、数据库);
  • 异步管理;
  • 优化 SQL 语句;
  • 数据库服务器使用固态硬盘;
  • 更新软件版本;
  • 增加服务器;
  • 正确配置软件。

Ronald 指出,性能优化需要制定详细的优化计划,确定每一部分的优化目标,并进行相应的测试验证。如果系统任何一部分未能达到预期的优化效果,那么就无法实现整个系统的性能提升。比如,一个系统的 MySQL 数据库饱和了,InnoDB 并发事务数达到上限。在旧版本中,这是一个不可配置的参数。因此,升级是一种简单直接的优化方法。但同时,工程团队升级了 PHP 应用程序框架(如 Slim Twig ),导致应用程序响应时间增加。结果,虽然系统负载增加了,但整体性能却未能得到提升。

因此,Ronald 指出,为了实现系统整体性能的优化,需要重点从以下几个方面考虑问题:

  • 了解 CPU 饱和度;
  • 检测和缓解网络延迟;
  • 了解虚拟云实例的虚拟模式选项;
  • 了解网络协议栈,利用好不同的主机操作系统;
  • 模拟生产负载并不容易;
  • 性能分析,分析,再分析;
  • 工具有误导性,需要了解不同监控工具的工作原理;
  • 全栈优化是一个迭代过程;
  • 了解如何优化技术栈的每一部分;
  • 不是每项优化都能达到预期效果;
  • 了解什么时候停止优化及优先优化哪一部分。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。

2015-04-21 06:224203
用户头像

发布了 1008 篇内容, 共 437.0 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

搞了三年Android开发终于把线程、多线程和线程池全搞懂了,掌握这些核心知识

android 程序员 移动开发

教你如何使用Flutter和原生App混合开发(1),Android开发面试解答之Handler

android 程序员 移动开发

数据结构篇11、映射Map及其三种底层实现,android插件化框架

android 程序员 移动开发

最新 Android 热门开源项目公布,androidframework开发书籍

android 程序员 移动开发

插件化库VirtualAPK详解,你头秃都没想到还能这样吧

android 程序员 移动开发

插件化框架解读之Android-资源加载机制详解(二),kotlin语法印章类

android 程序员 移动开发

揭秘 Android 百万开发被迫转行背后的残酷真相,只是你没找对方向罢了

android 程序员 移动开发

搞了三年Android开发终于把线程、多线程和线程池全搞懂了,掌握这些核心知识(1)

android 程序员 移动开发

无意苦争春,一任群芳妒!看完这份2020年度大厂Android面试总结

android 程序员 移动开发

换个姿势,带着问题看Handler,android应用程序开发的流程

android 程序员 移动开发

收割腾讯等十几个Offer后,揭秘进大厂的秘诀和Android技术面试题汇总!

android 程序员 移动开发

数据结构篇09、哈希表--简化版HashMap,一线互联网移动架构师360°全方面性能调优

android 程序员 移动开发

文档06-H264解码流程,android实战开发项目阅读器

android 程序员 移动开发

收好这份钉钉和抖音的客户端面经,真的很重要!,ndk开发环境

android 程序员 移动开发

文字太多?控件太小?试试 TextView 的新特性 Autosizing 吧

android 程序员 移动开发

曾经身为一名Android面试官的我,如今去别的公司面试被虐成狗!我也有今天7

android 程序员 移动开发

最全-BAT-大厂Java和Android面试题整理!为接下来秋招金九银十做准备(聪明人已经收藏了

android 程序员 移动开发

掌握Android和Java线程原理上,跨平台移动开发工具

android 程序员 移动开发

插件化框架解读之android系统服务实现原理(五),毕业工作5年被裁

android 程序员 移动开发

春招结束,腾讯+字节,android移动开发基础案例教程答案

android 程序员 移动开发

教你如何使用Flutter和原生App混合开发,androidstudio项目实战

android 程序员 移动开发

新鲜出炉的Android面试题,确定不来看看吗?还有超详细的答案解析哦

android 程序员 移动开发

普通程序员,三年成为年薪70w架构师,只因有了这些习惯

android 程序员 移动开发

最后再说一次!!不要在你的App启动界面设置SingleTask-SingleInstance

android 程序员 移动开发

插件化框架解读之Class文件与Dex文件的结构(一),Android详解

android 程序员 移动开发

最好用的安卓按钮,含泪狂刷Android基础面试118题

android 程序员 移动开发

最新-Android-面试点梳理,我收藏了你呢?,事件分发机制怎么回答

android 程序员 移动开发

插件化&热修复系列——ClassLoader方案设计,开源至上

android 程序员 移动开发

搞Android开发为什么这么难?想哭了!,kotlin中文

android 程序员 移动开发

教你如何使用Jetpack绘制天气图,史上最详细!,跨平台app开发框架

android 程序员 移动开发

数据结构(三), 弄懂红黑树RBTree(多图警告!!!),帮你突破瓶颈

android 程序员 移动开发

性能优化:一个全栈问题_后端_谢丽_InfoQ精选文章