系统性能分析与优化核心要点

1、什么是利用率?

利用率有两种定义:

  1. 基于时间的定义
    一个磁盘或 CPU 实例在一个时间间隔内处于忙碌状态执行工作的时间占比。

  2. 基于容量的定义
    系统或组件(如磁盘驱动器)在任何性能水平下,其工作的吞吐量占其总容量的比例。

通常情况下,利用率指的是 基于时间的版本 ,即非空闲时间,而容量版本用于一些基于容量的指标,如内存使用情况。

2、什么是延迟?

延迟是一个基于时间的指标,指的是某个操作从开始到结束所花费的时间。不同类型的延迟衡量不同操作的耗时,如:

- **名称解析延迟**:主机解析为 IP 地址的时间;
- **Ping 延迟**:ICMP 回显请求到响应的时间;
- **TCP 连接初始化延迟**:从发送 SYN 到收到 SYN,ACK 的时间等。

由于“延迟”一词可能有歧义,最好加上限定词来解释其衡量的内容,如 **请求延迟**、**TCP 连接延迟** 等。

3、什么是微基准测试?

微基准测试

微基准测试可通过以下两种方式执行:

  • 使用 微基准测试工具 :该工具既应用工作负载,也测量性能。
  • 使用 负载生成器工具 :仅应用工作负载,性能测量由其他可观测性工具完成。

它通常尽可能快地执行目标操作,并通过测量大量此类操作的完成时间来计算平均时间:

$$
\text{平均时间} = \frac{\text{运行时间}}{\text{操作计数}}
$$

微基准测试的目标示例:
  • 系统调用时间
  • 文件系统读取
  • 网络吞吐量
注意事项:
  • 结果需映射到目标工作负载。
  • 可使用现有的不同微基准测试工具,也可自行开发。

4、为你的(或一个假设的)环境选择五种方法。确定它们可以实施的顺序,并解释选择每种方法的原因。

选择的五种方法及顺序

  1. 问题陈述法
    - 应作为解决新问题的首要方法。
    - 通过向客户询问相关问题,如认为存在性能问题的原因、系统过往表现、近期变化、能否用延迟或运行时间表达问题、问题影响范围、环境情况等,往往能直接指出问题原因和解决方案。
    - 例如在解决性能问题时,通过电话采用此方法,无需登录服务器或查看指标就能解决问题。

  2. 科学方法
    - 在通过问题陈述法明确问题后使用。
    - 以性能问题陈述为问题,对性能不佳的原因进行假设,构建基于假设的预测测试,最后分析测试数据。
    - 比如应用迁移到内存较少的系统后性能下降,可假设是文件系统缓存变小导致,通过观察测试测量缓存未命中率。

  3. 临时检查表法
    - 适用于管理支持专业人员团队时。
    - 能确保团队成员知道如何检查常见问题,清单需清晰且规定明确,说明如何识别问题及解决方法,但要不断更新。

  4. 路灯反方法
    - 不建议优先使用,但可在其他方法无法解决问题时尝试。
    - 用户选择熟悉、在互联网上找到或随机的可观测性工具分析性能,或通过试错方式调整性能。
    - 不过这种方法有很大随机性,可能忽略很多类型的问题,找到的问题可能并非关键问题。

  5. 随机更改反方法
    - 作为最后手段。
    - 用户随机猜测问题所在并进行更改,通过研究应用运行时间、操作时间、延迟等指标判断性能是否改善。
    - 此方法耗时且可能导致长期来看不合理的调整。

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。

9、描述虚拟文件系统(VFS)的作用及其在 I/O 栈中的位置。

VFS(虚拟文件系统接口)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值