1、什么是利用率?
利用率有两种定义:
-
基于时间的定义 :
一个磁盘或 CPU 实例在一个时间间隔内处于忙碌状态执行工作的时间占比。 -
基于容量的定义 :
系统或组件(如磁盘驱动器)在任何性能水平下,其工作的吞吐量占其总容量的比例。
通常情况下,利用率指的是 基于时间的版本 ,即非空闲时间,而容量版本用于一些基于容量的指标,如内存使用情况。
2、什么是延迟?
延迟是一个基于时间的指标,指的是某个操作从开始到结束所花费的时间。不同类型的延迟衡量不同操作的耗时,如:
- **名称解析延迟**:主机解析为 IP 地址的时间;
- **Ping 延迟**:ICMP 回显请求到响应的时间;
- **TCP 连接初始化延迟**:从发送 SYN 到收到 SYN,ACK 的时间等。
由于“延迟”一词可能有歧义,最好加上限定词来解释其衡量的内容,如 **请求延迟**、**TCP 连接延迟** 等。
3、什么是微基准测试?
微基准测试
微基准测试可通过以下两种方式执行:
- 使用 微基准测试工具 :该工具既应用工作负载,也测量性能。
- 使用 负载生成器工具 :仅应用工作负载,性能测量由其他可观测性工具完成。
它通常尽可能快地执行目标操作,并通过测量大量此类操作的完成时间来计算平均时间:
$$
\text{平均时间} = \frac{\text{运行时间}}{\text{操作计数}}
$$
微基准测试的目标示例:
- 系统调用时间
- 文件系统读取
- 网络吞吐量
注意事项:
- 结果需映射到目标工作负载。
- 可使用现有的不同微基准测试工具,也可自行开发。
4、为你的(或一个假设的)环境选择五种方法。确定它们可以实施的顺序,并解释选择每种方法的原因。
选择的五种方法及顺序
-
问题陈述法
- 应作为解决新问题的首要方法。
- 通过向客户询问相关问题,如认为存在性能问题的原因、系统过往表现、近期变化、能否用延迟或运行时间表达问题、问题影响范围、环境情况等,往往能直接指出问题原因和解决方案。
- 例如在解决性能问题时,通过电话采用此方法,无需登录服务器或查看指标就能解决问题。 -
科学方法
- 在通过问题陈述法明确问题后使用。
- 以性能问题陈述为问题,对性能不佳的原因进行假设,构建基于假设的预测测试,最后分析测试数据。
- 比如应用迁移到内存较少的系统后性能下降,可假设是文件系统缓存变小导致,通过观察测试测量缓存未命中率。 -
临时检查表法
- 适用于管理支持专业人员团队时。
- 能确保团队成员知道如何检查常见问题,清单需清晰且规定明确,说明如何识别问题及解决方法,但要不断更新。 -
路灯反方法
- 不建议优先使用,但可在其他方法无法解决问题时尝试。
- 用户选择熟悉、在互联网上找到或随机的可观测性工具分析性能,或通过试错方式调整性能。
- 不过这种方法有很大随机性,可能忽略很多类型的问题,找到的问题可能并非关键问题。 -
随机更改反方法
- 作为最后手段。
- 用户随机猜测问题所在并进行更改,通过研究应用运行时间、操作时间、延迟等指标判断性能是否改善。
- 此方法耗时且可能导致长期来看不合理的调整。
5、总结仅使用平均延迟作为性能指标时存在的问题。包含第99百分位数能否解决这些问题?
仅使用平均延迟作为性能指标存在严重误导性,它可能并非集中趋势的指标,不能反映数据的真实分布。此外,平均延迟难以识别异常值,如磁盘I/O延迟和网络I/O延迟的异常值,这些异常值可能导致严重的性能问题。
- 第99百分位数 有更好的机会识别异常值,但仍取决于异常值的出现频率,所以包含第99百分位数不一定能完全解决这些问题。
为更好理解数据分布,可检查完整分布,如使用直方图。
6、页面调度(paging)和进程交换(process swapping)之间有什么区别?
进程交换与页面调度
进程交换是最初的Unix方法,会导致严重的性能损失,它会将整个线程和进程进行交换;
而 页面调度 更高效,它是将页面移入和移出主内存,以较细粒度的方式管理和释放主内存,是一种将最近最少使用(或最近未使用)的内存页面移动到二级存储设备,并仅在需要时再移回主内存的方法。
在Linux中,术语“ 交换(swapping) ”用于指代页面调度中的匿名页面调度,即涉及进程私有数据(进程堆和栈)的页面移动。
7、I/O - 绑定和 CPU - 绑定工作负载之间有什么区别?
CPU - 绑定工作负载的应用程序会进行大量计算,例如科学和数学分析,运行时间长,受 CPU 资源限制;
I/O - 绑定工作负载的应用程序主要执行 I/O 操作,计算量少,例如 Web 服务器、文件服务器和交互式 shell,期望低延迟响应,负载增加时受存储或网络资源的 I/O 限制。
8、描述内核的作用。
内核的作用
内核是管理系统的程序,其管理内容包括硬件设备、内存和CPU调度。它运行在特权CPU模式(内核模式)下,可直接访问硬件,对设备访问进行仲裁以支持多任务处理,防止进程和用户在未获明确允许的情况下访问彼此的数据。
用户程序通过系统调用向内核请求执行特权操作,如进行设备I/O。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



