写点什么

百度技术沙龙第 1​8 期回顾:大型网站的性能测试实践及结果分析​(含资料下载)

  • 2011-09-20
  • 本文字数:1709 字

    阅读完需:约 6 分钟

在 9 月 17 日百度主办、InfoQ 策划组织实施的第18 期百度技术沙龙活动上,来自百度质量部高级架构师王磊以及HP 测试工程师, 7 点测试论坛坛主 Zee,分别分享了与大型网站性能测试的相关话题,话题涉及互联网产品性能测试案例及经验分享和企业级系统性能分析实践。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

主题一:互联网性能测试案例及经验分享视频,MP3 和 Slides 等资料下载

来自百度的高级架构师王磊第一个为大家分享,王磊讲解了四个具体的实例,其中包括测试结果与实际情况不符、OS 对性能测试的影响、网络环境对性能的影响以及不良代码对性能的影响。在每部分的案例讲解中,都将问题进行了重现,首先说明问题表现,其次说明该问题所导致的后果,由如何找到原因再到案例的结论分析等。其中,重点讲解了不良代码对性能的影响部分:​​​​​​

测试对象为一个检索模块,问题为性能表现与预期的相差很大,在分析具体原因时王磊首先讲解了内存分配的原理:

  • 检查要访问的虚拟地址是否合法
  • 查找 / 分配一个物理页
  • 填充物理页内容(读取磁盘)
  • 建立映射关系(虚拟地址到物理地址)
  • 重新执行发生断页中断的那条指令

从代码的角度上来看:

  • 一个请求过来,用 malloc 分配 2MB 内存,请求结束后 free 这块内存
  • 日志显示分配内存语句耗时 10us,平均一条请求处理耗时 1000us

从分析中最后得出结论,性能差的原因是:

  • 内存申请造成缺页中断
  • 因为这种缺页不需要磁盘,所以是 minfit
  • 缺页中断在内核态执行,进程的内核态 CPU 消耗很大

主题二:找出系统性能瓶颈:企业级系统性能分析实践视频,MP3 和Slides 等资料下载

Zee 的演讲主要包含以下几个部分,理解性能测试、性能测试需求的获取和分析、性能测试执行、控制及分析、可用性统计分析、排队论在分析过程中的应用,最后对各种场景的性能问题通过实例进行了分享。在 Zee 的演讲过程中,重点讲述了性能测试执行、控制及分析。Zee 首先带领读者一同梳理了性能问题分析的流程,接着介绍了如何从系统架构来分析瓶颈点,列举了常见的系统故障征兆:

  • 持续运行缓慢
  • 系统性能随时间的增加逐渐下降
  • 系统性能随负载的增加逐渐下降
  • 间发性的系统挂起或异常错误
  • 可预见的死锁
  • 系统突然出现混乱

稍后,Zee 详细列举了系统常见的问题及解决方法,常见问题涉及内存泄漏呈线性增长、内存泄漏呈指数级增长、导致无限循环的编码缺陷、资源泄漏、外部瓶颈、外部系统的过度使用、频繁调用 CPU 密集型组件的编码缺陷、桥接层本身存在的问题、内部资源的过度使用或分配不足、不断重试、线程阻塞点、线程的死锁或活锁、网络饱和等。针对以上“疾病”,分别列举了出现的征兆,分析其原因并提供了相应的解决办法。紧接着,Zee 还对分析性能问题时需要注意的信息进行了讲解,介绍了如何执行针对 SQL 的性能分析,通过图形的形式展现了性能指标和用户数两者之间的关系和影响并通过思维导图的方式将与性能调整有关的议题进行了呈现。

​最后,Zee 针对性能测试中需要注意的一些问题进行了总结:

  • 在正式测试之前进行实验性的测试
  • 不要对生产环境造成不良影响
  • 数据聚集问题
  • 没有及时通知其他相关人员
  • 全面分析测试数据
  • 注意硬件设备对性能的影响
  • 没有确定测试需要采集的数据
  • 没有确定测试的范围和目的
  • 测试时关注系统的出错信息
  • 测试的网络环境不清楚
  • 相关人员没有及时在现场
  • 没有测试一个完整的回路
  • 并发数与发送流量的问题

​​​​会后一些网友在新浪微博分享了他们参会的感受:

@醉梦如烟 _ 燕飞:#百度技术沙龙#王磊、高楼大家本次关于性能测试这块非常不错,让我受益匪浅,希望今后能更多的参与这样的讲座。

@savager :#百度技术沙龙#好地方,前沿技术,多学习。

@陈奎 _ 走行寻:今天的百度技术沙龙性能测试专场,人数出奇的爆满。

@haitao_yao :#百度技术沙龙# 第二场有料,惠普的性能测试跟我遇到的场景类似,没白来,哈哈。

​此外,Zee 在会后的随笔中,记录了参加本期沙龙演讲后的感触,请参阅《Zee 随笔—第十八期InfoQ:百度技术沙龙演讲之后》

有关百度技术沙龙的更多信息,可以通过新浪微博关注** @百度技术沙龙,或者加入百度技术沙龙微群 **,InfoQ 上也总结了过往 17 期所有百度技术沙龙的演讲视频和资料等,感兴趣的读者可以直接浏览阅读

2011-09-20 17:322274
用户头像

发布了 156 篇内容, 共 58.8 次阅读, 收获喜欢 7 次。

关注

评论

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

烫烫屯屯锟斤拷��

博文视点Broadview

下载Spring4.1.x源码并用IntelliJ IDEA打开

程序员欣宸

Java 5月月更

云原生技术应用情况报告重磅发布

行云创新

云计算 云原生 开发 报告 行业

存储系统如何适配 Hadoop?

焱融科技

hadoop 存储 文件存储

阿里云首家通过《可信云·云成本优化工具能力要求》评估,云原生企业 IT 成本治理方案助力企业 FinOps 落地

阿里巴巴云原生

阿里云 云原生 工具

我的编程学习经历

留乘船

学习

MASA Auth - 权限设计

MASA技术团队

C# .net 微软 权限

使用 Amazon SageMaker 为新用户提供实时音乐推荐

亚马逊云科技 (Amazon Web Services)

Amazon 音乐 实时推送

解放双手!推荐一款 GitHub 星标 8.2k+的命令行软件管理器,非常酷炫!

沉默王二

GitHub

Amazon Kinesis Data Streams 实现跨账户应用日志收集

亚马逊云科技 (Amazon Web Services)

日志 Data

云原生平台 Kyma 上创建的 Lambda Function 的技术实现细节介绍

汪子熙

Kubernetes 云原生 SAP Kyma 5月月更

龙蜥社区第八次运营委员会会议顺利召开

OpenAnolis小助手

开源 生态 龙蜥社区 理事单位 运营委员会

LabVIEW仪器控制:智能显示屏(数码管显示屏)

不脱发的程序猿

串口通信 工业自动化 LabVIEW仪器控制 数码管显示屏软件 数码管显示屏

java开发培训任务调度框架Quartz的用法

@零度

JAVA开发

OpenHarmony 3.1 Release版本关键特性解析——构建OpenHarmony窗口框架

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release 窗口框架

记一个 Harvester SNAT 案例

Rancher

Kubernetes k8s rancher Harvester

JVM进阶(十八)——初识Class文件

No Silver Bullet

JVM class文件 5月月更

融云漫话:没有一个人躲得过“视频会议”

融云 RongCloud

Python爬虫网页元素定位术,就在这篇博客中

梦想橡皮擦

5月月更

数字化时代,企业知识管理软件怎么选

小炮

企业知识管理

关于延期举办第六届世界智能大会的通知

InfoQ 天津

王莉:将开发文档英文化和本地化,我们努力让OpenHarmony走向全球

OpenHarmony开发者

开发文档 OpenHarmony OpenHarmony 3.1 Release

Python写实用小工具-实现图片转字符画

okokabcd

Python

战码先锋直播预告丨参与文档贡献,开启OpenHarmony社区贡献之旅

OpenHarmony开发者

OpenHarmony OpenHarmony 3.1 Release 社区贡献

为何架构设计能力难以提升?- 作业

阿拉阿拉幽幽

大咖说*菜鸟|物流行业重大战略机遇期已悄然到来

大咖说

互联网 物流 降本增效 菜鸟 实体经济

MQTT协议连接阿里云物联网服务器​

DS小龙哥

5月月更

【LeetCode】单值二叉树Java题解

Albert

LeetCode 5月月更

百问百答第39期:如何区分docker容器中的进程名称?

博睿数据

智能运维 Bonree Server 博睿数据

云原生技术新版图——无服务器(Serverless)数据库

亚马逊云科技 (Amazon Web Services)

数据库 Serverless 云原生

Android 子线程 UI 操作真的不可以?

vivo互联网技术

android 线程 UI

百度技术沙龙第1​8期回顾:大型网站的性能测试实践及结果分析​(含资料下载)_InfoQ_贾国清_InfoQ精选文章