QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

三大套路带你通关 CPU 性能优化 | 极客时间

  • 2019-05-23
  • 本文字数:1605 字

    阅读完需:约 5 分钟

三大套路带你通关 CPU 性能优化 | 极客时间

无论是运维还是开发,和 Linux 打交道、在服务器上分析系统性能是每个技术人的日常。然而,性能优化也是软件系统中最有挑战的工作之一,就算看了很多资料和书籍,但一旦涉及到解决具体问题,还是难免困惑不已,比如,


  • 性能指标和性能分析工具那么多,我该怎么掌握和选择呢?

  • 即使会用指标和工具,又该如何快速定位性能瓶颈呢?

  • 找到性能瓶颈后,接下来该怎么优化呢?


以上三点,可以说是性能优化工作的重中之重。不过不要担心,凭借多年的性能优化经验,我总结出三大套路,带你攻下性能优化这一难关,分别是:


  • “性能指标/工具”指南;

  • “又快又准”的瓶颈定位套路;

  • 优化工作的必备思路。


当然,性能优化工作,离不开对系统原理的把握。从系统层面,我将其分为 CPU 性能、内存性能、I/O 性能和网络性能四大板块,并分别整理了对应的解决思路。今天我们就先以 CPU 性能为例,看看这些套路是怎么用的。

“指标/工具”指南

首先是对于性能指标和工具的掌握。我的经验是,从两个不同的维度来理解它们,做到活学活用,把性能指标和性能工具联系起来。


第一个维度,从 CPU 的性能指标出发。当你要查看某个性能指标时,要清楚地知道哪些工具可以做到。根据不同的性能指标,对提供指标的性能工具进行分类和理解。这样,在排查性能问题时,你就会知道什么工具可以提供你想要的指标,而不是毫无依据地挨个尝试,撞运气。



第二个维度,从工具出发。当你安装了某个工具后,要知道这个工具能提供哪些指标。这在实际环境,特别是生产环境中非常重要。因为在很多情况下,你并没有权限安装新的工具包,只能最大化地利用好系统中已经安装的工具,这就需要你对它们有足够的了解。


具体到每个工具的使用方法,一般都支持丰富的配置选项。这些配置选项你并不用背下来,只要知道有哪些工具、以及这些工具的基本功能是什么就够了。真正要用到的时候, 通过 man 命令,查询它们的使用手册就可以。


当然,这些常见指标和工具的对应关系,我制作了“指标-工具指南”和“工具-指标指南”两张图表,方便你梳理关系和理解记忆。


11 | 套路篇:如何迅速分析出系统CPU的瓶颈在哪里?

瓶颈定位套路

其次是快速定位性能瓶颈的套路。CPU 的性能指标比较多,而且它们之间并不是孤立的,很多指标间都有一定的关联。掌握不同指标之间的关联性,你就可以简化大多数问题了。


同样的,我制作了一张 CPU 性能指标和工具的关联图,列出了 top、vmstat 和 pidstat 分别提供的重要 CPU 指标,并用虚线表示关联关系,对应出了性能分析下一步的方向。


你可以保存这张图,作为 CPU 性能分析的思路图谱。从最核心的这几个工具开始,通过我提供的案例,自己在真实环境里实践,拿下它们。


优化必备思路

最后是具体的优化思路。这里我们首先要形成清晰的性能优化方法论。


从目的上说,我们解决性能问题是为了得到性能提升的效果,要明确并评估这种性能优化的效果,为此我总结了“性能评估三步走”,你可以参考使用:


  1. 确定性能的量化指标;

  2. 测试优化前的性能指标;

  3. 测试优化后的性能指标。


从操作上来说,多维度指标的选择、多性能问题的选择、多优化方法的选择,这三者都是我们考虑的重点。


12 | 套路篇:CPU 性能优化的几个思路


订阅专栏,了解更多”套路“


内存性能篇:21 | 套路篇:如何“快准狠”找到系统内存的问题?


I/O 性能篇:30 | 套路篇:如何迅速分析出系统I/O的瓶颈在哪里?


网络性能篇:36 | 套路篇:怎么评估系统的网络性能?


专栏简介


在专栏中,我结合自己多年的实战经验,以案例驱动的思路,为你讲解了 Linux 性能的基本指标、工具,以及相应的观测、分析和调优方法,让你学后可以立即应用在自己的优化工作中。针对评论区那些有代表性的问题,我专门设立了答疑篇章,为大家解惑的同时也可以为其他学习专栏的同学提供参考。


学完专栏后,你将获得:


  • Linux 常用的性能分析工具合集

  • 30 个 Linux 性能问题诊断思路

  • 读懂 CPU、内存、I/O 等指标

  • 5 个真实的线上环境分析案例


内容选自极客时间《Linux性能优化实战》专栏


2019-05-23 16:547135

评论

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

android嵌入式开发板系统盘,看完就能找到工作

android 程序员 移动开发

4面阿里拿到P7Offer,Android开发指南

android 程序员 移动开发

androidframework开发教程,安卓面试题库

android 程序员 移动开发

云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务

华为云开发者联盟

代码 华为云 codehub 上云 代码云托管

android实战视频教程,高并发系统基础篇

android 程序员 移动开发

android开发入门与实战网盘,安卓面试宝典

android 程序员 移动开发

DeFi金融借贷系统DAPP开发现成模板

androidsdk下载安装,经验分享

android 程序员 移动开发

DeFi质押挖矿系统DAPP开发内容(源码)

android实战的书籍,超通俗解析

android 程序员 移动开发

android开发入门与实战网盘,大佬分享开发经验

android 程序员 移动开发

android常用面试题,顺利通过阿里Android岗面试

android 程序员 移动开发

android开发技术介绍,Android面试题及答案

android 程序员 移动开发

2021高级Android笔试总结,帮你解决95%以上的问题

android 程序员 移动开发

Android大厂高级面试题灵魂100问,金九银十

android 程序员 移动开发

android开发入门与实战网盘,安卓开发中遇到最难的问题

android 程序员 移动开发

阿里云新基建丛书新书重磅发布

Lily

android工程师面试题,大厂面试题汇总

android 程序员 移动开发

android开发入门与实战网盘,值得一读

android 程序员 移动开发

android开发实例论文,详解Android架构进阶面试题

android 程序员 移动开发

android开发教程百度网盘,2021非科班生的Android面试之路

android 程序员 移动开发

714页PDF的鸿蒙学习笔记,Android开发必须会的技能

android 程序员 移动开发

Android-Camera内存问题剖析,通用流行框架大全

android 程序员 移动开发

这4个行业用进销存管理系统是肯定不会错的

低代码小观

企业 企业管理 系统 管理系统 进销存管理系统

android学习心得,并发编程挑战

android 程序员 移动开发

论文解读:ACL2021 NER | 基于模板的BART命名实体识别

华为云开发者联盟

nlp 模板 实体识别 BART命名 NER

android5.0下载,阿里Android研发岗二面

android 程序员 移动开发

android基础知识总结,面试复盘

android 程序员 移动开发

Android屏幕适配很难嘛其实也就那么回事,含面试题+答案

android 程序员 移动开发

androidstudio连接手机,四面阿里Android开发岗

android 程序员 移动开发

android开发实战经典PDF,研发4面真题解析(Android岗)

android 程序员 移动开发

三大套路带你通关 CPU 性能优化 | 极客时间_硬件_倪朋飞_InfoQ精选文章