NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

三大套路带你通关 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:546457

评论

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

高通将支持 Meta Llama 3 在骁龙终端运行;特斯拉中国全系车型降价 1.4 万元丨 RTE 开发者日报 Vol.189

声网

牛批!大三就冲进腾讯了!2024最新大厂面经

王中阳Go

面试 面试题 大厂面经 Java 面试题 go面试题

混淆原理与实践指南

雪奈椰子

软件测试学习笔记丨后端接口基本开发 - spring boot发送 POST请求

测试人

软件测试

华为Mate X5升级HarmonyOS 4.2 大屏互动超有趣

最新动态

AIGC在设计中的应用实践

智在碧得

AI 设计 AIGC AIGC技术探索

得物 ZooKeeper SLA 也可以 99.99%丨最佳实践

阿里巴巴云原生

zookeeper 阿里云 云原生

一文读懂Partisia Blockhain:兼顾去中心化、安全性与可扩展性

西柚子

直播回顾|6个实例带你解读TinyVue 组件库跨框架技术

OpenTiny社区

开源 Vue 前端 组件库

Giants Planet 开启符文的新篇章,走向加密世界的最高峰

长安区块链

4+1 视图建模及架构设计工程实践

智在碧得

软件测试 性能测试 架构设计 软件建模 架构建模

销帮帮CRM与电商运营增效的关系?

RestCloud

CRM 业务系统 APPlink 自动化集成

OpenAI创始人Sam独家专访!GPT5升级时间确定!

蓉蓉

人工智能 openai ChatGPT

“AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

阿里巴巴云原生

阿里云 云原生

区块链钱包开发指南: 探究区块链钱包开发涉及

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

一文读懂链游!探索链游的前世今生,区块链与游戏结合的新兴趋势

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

OpenTiny 亮相 W3C 2024春季顾问委员会会议,共话行业新趋势。

OpenTiny社区

开源 前端 Web

区块链交易所技术开发架构解析 交易所开发团队

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

NFT卡牌质押分红模式开发技术讲解分析

区块链软件开发推广运营

区块链开发 链游开发 NFT开发 公链开发 区块链开发DAPP开发

Taylor Swift全新专辑上线华为音乐,谱写爱与诗歌音符

最新动态

软件测试学习笔记丨Selenium多窗口处理

测试人

软件测试 自动化测试 测试开发 selenium

“AI 程序员入职系列”第二弹:如何利用通义灵码光速改写项目编程语言?

阿里云云效

阿里云 云原生

回归测试的四个步骤

FunTester

多平台小程序管理最实用的工具

Geek_2305a8

系统架构基础知识入门指南-下

老张

系统架构 业务流 端到端 技术实践

活动回顾丨云原生开源开发者沙龙北京站回放 & PPT 下载

阿里巴巴云原生

阿里云 云原生

【教程】iOS应用上架流程详解

MES系统 DE 生产绩效功能及分析

万界星空科技

绩效管理 生产管理系统 mes 工时管理 生产绩效

数栈+AI:数栈V6.2创新发布,让数据开发更智能

袋鼠云数栈

大数据 AI 信创 AI技术 大模型

银行信创化需考虑生态建设

Geek_2305a8

DAPP的商业模型创新: 探索可持续盈利路径

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

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