一、你怎么看linux性能
首先我是一个运维工程师目前也干了近4-5年的时间了,按道理这个4-5年的阶段应该是经验老道的运维老鸟了,但是我不知道有没有人和我一样 知识碎片化非常严重 不成体系 还是总结的太少 没有能在脑海里形成图谱 我写这个文档 也是为了跟着倪老师学习加深印象和写一些自己的见解 沉淀一些知识 有同行看见别喷我哈
作为运维工程师linux系统的性能分析应该是必备技能,了解底层的一些运行原理,使用工具并大量练习,分析 抽丝剥茧 在脑海里面形成体系和全局观 ,切记在一些底层原理上钻牛角尖 有些东西点到为止即可
二、什么是性能指标
这个分两个视角来看
服务器上跑的应用程序视角:并发,吞吐 qps 之类的
从底层资源上来说就是:系统的内存 CPU 负载 IO 使用率等
用户量的增加或者处理一些大任务就会导致应用程序的负载加大,应用程序负载高就需要足够的底层资源的支撑 会导致底层资源的负载增加甚至打满,导致用户体验越来越慢 这时候就需要我们去找出性能瓶颈在哪,分两种情况
系统资源不足导致
处理这种问题就比较简单,就得对应用程序的资源使用量 重新评估然后扩容 加机器便可
程序都是人写的 难免会出现一写问题,不合理的系统调用 以及不合理的回收机制都会导致 系统资源被个别程序占用 最后导致系统负载跑满 这就需要我们来看了,找出应用或者系统的瓶颈 优化或者缓解他们 从而高效的利用资源
选择指标评估应用程序和系统的性能;
为应用程序和系统设置性能目标;
进行性能基准压力测试;
定位瓶颈和分析;
优化系统或者应用程序;
最后要做到监控和告警;
三、如何学习
万变不离其宗,学习方法方式非常重要 如何建立linux性能分析的全局观
多练多练多练,闭眼思考拓扑
了解底层的基本原理
学习使用各种性能分析工具
在各种环境中去演练把学习的知识能穿起来
性能工具,就不得不提性能领域的大师布伦丹·格雷格(Brendan Gregg)
这个是性能工具图谱这里可以先放这了解一下,可以把它设置为桌面 发呆的时候看看
原图地址 https://www.brendangregg.com/Perf/linux_perf_tools_full.png