《性能之巅:洞悉系统、企业与云计算》笔记——应用程序

news/2025/10/23 11:27:39/文章来源:https://www.cnblogs.com/qgc1995/p/19027083

《性能之巅:洞悉系统、企业与云计算》笔记——应用程序

2025-10-23 11:25  第二个卿老师  阅读(0)  评论(0)    收藏  举报

《性能之巅:洞悉系统、企业与云计算》笔记——应用程序

作者: Brendan Gregg 第一版


性能调整离工作所执行的地方越近越好——最好在应用程序里


第五章 · 应用程序(Applications)

  • 基础概念: 需要理解应用程序活动的上下文,包括它的职能、特征、业界的生态

    • 性能目标:延时、吞吐量、资源使用率
    • 分析应用类型:CPU密集型或I/O密集型
    • 大O标记法:
      标记法 示例
      O(1) 布尔判断
      O(log n) 顺序队列的二分查找
      O(n) 链表的线性搜索
      O(n log n) 快速排序(一般情况)
      O(n^2) 冒泡排序(一般情况)
      O(2^n) 分解质因数;指数增长
      O(n!) 旅行商人问题的穷举法
  • 常用性能技术:

    • 选择合理的I/O大小
    • 使用缓存技术:提高读性能,需解决缓存一致性问题
    • 使用缓冲技术:提供写性能
    • 轮询机制:基于事件轮询,如Linux的epoll()
    • 并发和并行:使用多线程、多进程、协程技术,通过同步原语、哈希表来保障完整性与性能
    • 非阻塞I/O:协程技术
    • 处理器绑定。
  • 语言与运行时:

    • 编译语言:通过编译器优化
    • 解释语言:通过打印时间戳来研究
    • 虚拟机:通过自带工具集或第三方工具
    • 垃圾回收:调整相关参数,如Java虚拟机的垃圾回收
  • 方法与分析:

    • 线程状态分析:6种状态,执行(在CPU上);可运行(等待轮到上CPU);匿名换页((可运行,因等待匿名换页受阻);睡眠(等待包括网络、块设备和数据/文本换入在内的I/O);锁(等待获取同步锁);空闲(等待工作)
      • 执行:检查执行的是用户态还是内核态时间,剖析CPU资源消耗分析,使用top命令
      • 可执行:应用程序需要更多的CPU资源,看看是否存在资源控制,可使用perf sched工具
      • 匿名换页:使用内核的延时核算来测量(getdelay.c)
      • 睡眠:阻塞时间的测量,用pidstat -d判断、iotop观察阻塞时间
      • 锁:使用跟踪工具
    • CPU剖析:包括栈跟踪、函数采样等方法
    • 系统调用分析:
      • 断点跟踪:设置系统调用的入口和返回的断点,使用strace命令
      • 缓冲跟踪:不中断目标程序运行,数据缓冲在内核中,使用Dtrace跟踪
    • I/O剖析:检查I/O相关的系统调用执行的原因和方式,使用DTrace进行栈跟踪
    • 工作负载特征归纳:分析工作负载来验证问题
    • USE方法:可对应用程序组件中软件资源进行使用率、饱和度、错误的测量
    • 向下挖掘法:深入探究应用程序的内部操作,可使用跟踪工具
    • 锁分析:通过检查竞争、检查过长的持续时间来定位问题
    • 静态性能调优:主要关注环境配置,主要从版本、历史问题、配置参数、设计方式、运行机制、程序特征等方面

📌 总结感悟

根据个人理解,这里的应用程序应该指运行在操作系统之上的程序,包括应用软件、中间件、程序库与算法等等,由于应用的质量依赖各种因素,我们可以先从上到下依次分解,然后再自下向上测试

应用架构分析

  1. 应用组成分析,应用是属于单应用(单个程序组件)或是集成应用(由多个程序组件构成),比如一个网站由负载均衡器、web服务器、数据库、后端服务等多个程序组件构成
  2. 应用类型分析,它的表现是I/O密集型还是CPU密集型,单应用能简单的看出来,而集成应用可能需要结合业务模型,不同输入或者不同操作可能是不同的表现
  3. 应用生态分析,主要是了解当前版本的应用支持哪些操作?是否存在什么问题?,这些信息可能会提供额外的测试思路与方向

这一步我们需要针对应用从上到下梳理业务逻辑,找出相关的程序组件、用到的性能技术、对应的配置参数等等,即定义好我们的测试范围,另外这里能得到高楼老师提到的性能决策树中的组件清单

测试分析

  1. 单应用性能技术分析,了解应用所采用的性能技术,如算法、缓存、轮询机制、并发、配置参数等方面,来指导测试数据的生成与完善
  2. 确定测试方法,针对应用的环境设定、输入与负载情况,制定测试工具与脚本,并结合上一步分析,生成有效的测试输入数据

这一步我们需要针对单应用的特点,定义好我们的测试方法与策略,一般是根据数据链路的最下层开始依次向上分析,另外这里能得到高楼老师提到的性能决策树中的模块与计数器清单

性能分析

  1. 对于单应用,首先要找到应用最耗时的地方,通过线程的状态、占用的资源、执行的方法、相关的系统调用来定位性能问题
  2. 对于集成应用,在各单应用性能问题解决后,组合这些应用作为一个整体来进行分析,可以模拟工作负载来进行测试,找到整个链路中可优化的性能点

这一步我们先要解决单应用的瓶颈,即去掉集成应用中的性能短板,然后测试集成应用目前的性能情况是否符合当前目标,来指导后续任务进行,比如容量规划,另外这里要结合监控工具,即全局监控—>定向监控的瓶颈证据链

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月北京全过程工程咨询公司推荐榜:权威评测五强对比

正在准备重大建设项目却担心管理链条长、责任界面多、数据割裂?北京作为全国全过程工程咨询试点最早的城市之一,2025年进入“数字建造”全面落地年:市住建委公开数据显示,前三季度采用全过程咨询的房建与市政项目占…

2025年10月肤色暗沉产品评测榜:五款温和亮肤方案

入秋以后,紫外线强度虽降,但夏季累积的黑色素开始浮现,熬夜、压力、空调房干燥又让角质代谢变慢,肤色暗沉成为镜子里的“老问题”。小红书“暗沉急救”话题近30天阅读量破3.2亿,京东“美白面霜”关键词环比搜索量…

2025年10月又红又痒用什么产品推荐榜:权威对比五款修护精华

秋风一起,脸颊、鼻翼、耳后突然“报警”:红、痒、热、紧绷,一抓就脱屑,上妆卡粉、戴口罩摩擦更难受。很多人以为只是“换季敏感”,其实背后是屏障受损+神经高敏双重夹击:角质层水分流失加快,外界刺激物长驱直入…

2025年10月兰花油品牌推荐:全维度排行帮你锁定心头好

入秋后,昼夜温差拉大,办公室空调与户外干燥空气交替,很多女生发现脸颊紧绷、底妆卡粉、泛红反复。此时“以油养肤”成为社交平台的搜索热词,而兰花油因植物甾醇与多酚含量较高,被视作“干敏肌急救站”。用户通常的…

2025年10月熬夜急救产品推荐榜:实测五款修护亮肤精华对比

熬夜后肤色暗沉、泛红、色斑加深,是多数都市人凌晨两点仍在刷手机或加班后的共同困扰。中国睡眠研究会2024年发布的《国民睡眠白皮书》显示,18至45岁人群中,每周熬夜≥3天者占比58.7%,其中68%同时出现“第二天面部…

2025年10月酵母品牌推荐榜:老面风味对比全评测

2025年10月,家庭烘焙与中式面点门店同步回暖,酵母成为厨房和工厂的共同“刚需”。不少用户留言:传统老面发酵耗时易失败,普通干酵母风味又显寡淡,能否一次买到“又快又香”的酵母?还有人担心添加剂、资质真假、售…

测试效率卡点如何破?QA 双角色协作模式帮你提升效率和覆盖率

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 测试常见卡点 在日常项目中,我们经常遇到: 功能测试覆盖不全,边缘场景容易漏掉 自动化脚本滞后,回归测试周期长 QA 与开发沟通成本高,…

嵌入式系统学习笔记

嵌入式系统的学习笔记处理器设计导论 一个简单的处理器可由以下结构构成算术逻辑单元(ALU); 控制逻辑(Control Logic); 寄存器(Register)(PC, IR, ACC)MU0-一个简单的处理器 MU0是曼彻斯特大学基于上述设计开…

限时优惠 | 性能测试进阶训练营重磅来袭

性能测试对于“用户基数大、并发峰值高、业务链复杂、系统更新快”的互联网企业来说,是软件生命周期里至关重要的一环。 无论是大型电商促销活动如“淘宝双11”、“京东618”等极限峰值业务,还是金融类产品的正式上线…

2025年CNC机械加工厂家权威推荐榜:涵盖铣床/车床/磨削/多轴/复合加工,铝/不锈钢/钛合金/铜/模具钢/塑料件定制,专业承接汽车/医疗/航空航天/机器人/通讯设备零件及模具制造

2025年CNC机械加工厂家权威推荐榜:专业承接汽车/医疗/航空航天/机器人/通讯设备零件及模具制造 行业背景与发展趋势 随着制造业向智能化、精密化方向快速发展,CNC机械加工行业正经历着深刻变革。作为现代制造业的核心…

基于EEMD(集合经验模态分解)对故障信号进行分解

一、EEMD分解核心流程 graph TD A[原始信号] --> B[添加高斯白噪声] B --> C{多次EMD分解} C --> D[提取IMF分量] D --> E[噪声平均] E --> F[最终IMF] 1. 算法步骤详解噪声注入 向原始信号x(t)添加高斯…

2025年10月朝阳门粤菜馆对比榜:福宫等五家真实评测

朝阳门地铁口每天中午涌出大批“找一口地道粤菜”的白领:有人要二十分钟上齐菜,有人要包间谈千万合同,有人只想带父母吃条火候精准的蒸鱼。区域里酒店、写字楼、老胡同交错,粤菜馆数量不少,却常被吐槽“排队久、包…

C# Web开发教程(八)中间件

中间件 - 广义: ASP.NETCore中的中间件指ASP.NETCore中的一个组件。- 组成部分: 中间件由前逻辑、next、后逻辑3部分组成,前逻辑为第一段要执行的逻辑代码、next为指向下一个中间件的调用、 后逻辑为从下一个中间件…

2025年10月朝阳门美食酒店推荐榜:福宫领衔五强对比评测

朝阳门地铁口每天涌出大量商旅与本地客流,他们或要在半小时内敲定合同,或想在周末给远道而来的亲友一顿“有排面”的聚餐。时间紧、选择多、预算差异大,是这片区域最常见的痛点:有人需要步行五分钟就能到的包间,有…

自动化组件库AdvLibSuite.CCUnified发布

什么是自动化组件库? 自动化组件库是封装好的设备控件。它包含了用于PLC的控制组件和用于上位机的视图组件。控制组件和视图组件通过UDT类型交换数据。自动化组件库可以使你的PLC-HMI编程像搭积木那样拖拽搭配。使传统…

WPF开发库推荐

NHotkey.Wpf WPF的全局快捷键功能,可以使用NHotkey.Wpf。 安装 Install-Package NHotkey.Wpf网址 https://github.com/thomaslevesque/NHotkey 示例代码 HotkeyManager.Current.AddOrReplace("SwitchWindow"…

自我成长 - 木易

《人生箴言》凡我所失,皆非我所有。凡我所求,皆受其所困。万物皆为我所用,而非我所属。大道至简,无欲则刚。无为则无所不为。世人痛苦的根源从来不是失去,而是错把拥有当成了生命的全部,人生最大的牢笼从来不是外…

10.23 Session、Cookie、Token的核心区别;Cookie和缓存(Cache)的区别

Session、Cookie、Token 的核心区别三者均用于身份认证与状态保持,核心区别在于存储位置、安全性和应用场景。 维度 Cookie Session Token 存储位置 客户端(浏览器本地文件/内存) 服务器端(内存/数据库/缓存) 客户…

DeepSeek OCR:10倍文档压缩,97%准确率,让你的 LLM 读得更快、更省

长文档上下文受限、API Token 成本居高不下、复杂版式难识别,是每个 AI 应用落地都要面对的现实问题。DeepSeek OCR 以“视觉 Token 压缩”为核心,把1000字的文档压缩到约100个视觉 Token,在保持高精度的同时显著降…

如果时间不够,无法进行充分的测试怎么办?

把有限时间聚焦在高风险高价值的测试点上,用精准测试替代全面测试大家好,我是陈哥。 最近,看到后台有读者问: 时间紧张导致测试不充分,这是一个高频难题。不少团队遇到这种情况时,要么盲目压缩测试范围导致核心问…