• 01 | 如何学习Linux性能优化?


    学习Linux性能优化的“拦路虎”

    1. 没找到有效的方法学原理

      重要的是需要深入学下去,建立起性能的全局观

    2. 性能问题的根源太复杂,即不懂怎么去分析,也不能抽丝剥茧找到瓶颈

    解决“拦路虎”的方法

    只要理解应用程序和系统的少数几个基本原理,再进行大量的实战练习,建立起整体性能的全局观。

    那么大多数性能问题的优化就会水到渠成。

    不需要了解每个组件的所有实现细节,只要能理解它们最基本的工作原理和协作方式。

    性能指标是什么?

    • 性能指标:高并发 ☞ 对应的性能优化核心指标 吞吐

    • 性能指标:响应快 ☞ 对应的性能优化核心指标 延时

    这两个指标是从应用负载的视角来考察性能,直接影响了产品终端的用户体验。

    和它们对应的,是从系统资源的视角出发的指标,比如 资源使用率饱和度 等。

    img

    性能问题的本质

    系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。

    性能分析,其实就是找出应用或系统的瓶颈,并设法去避免或者缓解它们。从而更高效地利用系统资源处理更多的请求。这包含一系列的步骤,比如下面这六个步骤。

    1. 选择指标评估应用程序和系统的性能
    2. 为应用程序和系统设置性能目标
    3. 进行性能基准测试
    4. 性能分析定位瓶颈
    5. 优化系统和应用程序
    6. 性能监控和告警

    学习的重点

    建立整体系统性能的全局观

    包括:

    1. 理解最基本的杰哥系统知识原理
    2. 掌握必要的性能工具
    3. 通过实际的场景演练,贯穿不同的组件

    性能领域的大师布伦丹·格雷格(Brendan Gregg)动态追踪工具 DTrace 的作者,下图是他所描绘的Linux性能工具图谱:

    img

    这个图是Linux性能分析最重要的参考资料之一。它描述了在Linux不同子系统出现性能问题后,应该用什么样的工具来观测和分析。

    比如,当遇到 I/O 性能问题时,可以参考图片最下方的 I/O 子系统,使用 iostat、iotop、blktrace 等工具分析磁盘 I/O 的瓶颈。你可以把这个图保存下来,在需要的时候参考查询。

    性能工具的选用 ☞ 一个正确的选择胜过千百次的努力。

    千万不要把性能工具当成学习的全部 ☞ 工具只是解决问题的手段,关键在于你的用法。只有真正理解了它们背后的原理,并且结合具体场景,融会贯通系统的不同组件,你才能真正掌握它们。

    性能的思维导图,里面涵盖了大部分性能分析和优化都会包含的知识。

    img

    学习技巧

    技巧一:虽然系统的原理很重要,但在刚开始一定不要试图抓住所有的实现细节。

    先学会系统工作原理,但不要去深究 Linux 内核是如何做到的,而是要把你的重点放到如何观察和运用这些原理上,比如:

    • 有哪些指标可以衡量性能?
    • 使用什么样的性能工具来观察指标?
    • 导致这些指标变化的因素等。

    技巧二:边学边实践,通过大量的案例演习掌握 Linux 性能的分析和优化。

    技巧三:勤思考,多反思,善总结,多问为什么。

    想真正学懂一门知识,最好的方法就是问问题。当你能提出好的问题时,就说明你已经深入了解了它。

    学前准备

    使用一到两台 Ubuntu 18.04 虚拟机,作为案例运行和分析的环境。只有通过在机器上练习,把学习的知识和案例自己过一遍,这些东西才能转化成自己的。

  • 相关阅读:
    Java低配版简单的随机点名系统
    是否二叉搜索树
    输出学生成绩
    求给定精度的简单交错序列部分和
    字符串的连接
    学生信息链表,建立,插入,删除,遍历,查找,修改,最大(小)值,平均
    测试文档(final)
    详细设计文档(final)
    概要设计文档(final)
    需求规格说明书(final)
  • 原文地址:https://www.cnblogs.com/custer/p/12983971.html
Copyright © 2020-2023  润新知