55、预取(提前读取)的目的是什么?
预取是一种常见的文件系统功能,用于解决顺序读取大量文件数据时缓存命中率低的问题。它可以根据当前和先前的文件I/O偏移量检测顺序读取工作负载,然后在应用程序请求之前预测并发起磁盘读取,以填充文件系统缓存,使应用程序后续的顺序读取能够命中缓存,从而显著提高顺序读取性能。
56、描述使用 fsync(2) 相对于 O_SYNC 的优势。
使用 fsync(2) 可以将多次写操作分组同步提交,避免了使用 O_SYNC 时每次写操作都同步写入的开销,能通过分组写入提高性能。同时, fsync(2) 还能利用写操作取消机制避免多次元数据更新。
57、解释文件系统写时复制(Copy - on - Write)如何提高性能。
写时复制(Copy-on-Write, COW)文件系统
写时复制(COW)文件系统不覆盖现有块,而是先将块写入新位置(新副本),再更新对新块的引用,最后将旧块添加到空闲列表。
优势
- 维护文件系统完整性 :在系统故障时,由于旧块未被覆盖,可以有效防止数据损坏。
- 提高性能 :将随机写入转换为顺序写入,从而提升写入性能。
58、文件系统缓存调优清单。应列出存在的文件系统缓存、如何检查其当前大小和使用情况以及命中率。
存在的文件系统缓存:
- 内核和文件系统可能使用多种不同的缓存,包括:
- 缓冲区缓存
- 目录缓存
- inode 缓存
- 文件系统(页面)缓存
检查当前大小和使用情况:
- 对于动态缓存大小,检查其当前大小
- 对于文件系统缓存配置,可查看其最大大小等配置情况
检查命中率:
- 检查缓存的命中/未命中比率和未命中率
59、选择一个应用程序,测量文件系统操作和延迟。包括:文件系统操作延迟的完整分布,而不仅仅是平均值;每个应用程序线程在文件系统操作中每秒所花费的时间比例。
可使用追踪工具记录所有文件系统操作及细节到日志以供后续分析,如操作类型、操作参数、文件路径名、开始和结束时间戳、完成状态、进程 ID 和名称等。对于操作延迟指标,可将其作为每秒平均值进行监控,还可包含最大值和标准差等其他值,理想情况下可使用直方图或热图来检查延迟的完整分布以查找异常值和其他模式。
对于每个应用程序线程在文件系统操作中每秒所花费的时间比例:
- 若事务中发出单个文件系统读取,应用程序会阻塞并等待其完成,总阻塞时间即为该单个文件系统读取的时间;
- 若事务中调用多个阻塞 I/O,总时间为它们的总和。
60、服务时间和等待时间的区别是什么?
等待时间是指在队列中等待所花费的时间,如:
- 磁盘等待时间是指在磁盘队列上花费的时间
- I/O等待时间是指在队列上等待的时间
- 块I/O等待时间是指从新I/O创建并插入内核I/O队列到离开最终内核队列并发送到磁盘设备所花费的时间
服务时间是指I/O被积极处理所需的时间,如:
- 磁盘服务时间是指磁盘队列之后I/O被积极处理所需的时间
- I/O服务时间是指I/O被处理(非等待)的时间
- 块I/O服务时间是指从向设备发出请求到设备发出完成中断的时间
61、什么是磁盘I/O等待时间?
I/O等待时间是一个针对每个CPU的性能指标,它表示当CPU调度队列中有线程(处于睡眠状态)因磁盘I/O而被阻塞时,CPU处于空闲状态所花费的时间。
该指标将CPU空闲时间分为:
- 无事可做的时间
- 因磁盘I/O而被阻塞的时间
每个CPU的I/O等待率较高表明磁盘可能成为瓶颈,导致CPU在等待磁盘操作完成时处于空闲状态。
62、什么是延迟异常值?
延迟异常值是指极少数极高或极低的值,不符合预期分布(单峰或多峰)。
例如:
- 磁盘I/O延迟异常值 :多数磁盘I/O在 0 到 10 毫秒之间,但偶尔会有超过 1000 毫秒的情况;
- 网络I/O延迟异常值 :由 TCP 基于定时器的重传导致的延迟异常值。
63、什么是非数据传输磁盘命令?
磁盘可能被执行的其他非数据传输命令,例如缓存刷新。
64、描述磁盘利用率和饱和度。
对于磁盘容量, 利用率 是指已使用且不可用的磁盘空间占总可用磁盘空间的比例,可用百分比表示,类似于文件系统容量。
饱和度 是指资源工作队列中超出其处理能力的工作量的度量。对于磁盘设备,它可以通过操作系统中设备等待队列的平均长度来计算(假设存在队列)。这提供了超过100%利用率时的性能度量。
处于100%利用率的磁盘可能没有饱和度(排队),也可能有很高的饱和度,由于I/O排队会显著影响性能。
利用率低于100%的磁盘是否有饱和度取决于利用率的统计区间:在一个区间内磁盘利用率为50%,可能意味着在该区间的一半时间内磁盘利用率为100%,而其余时间处于空闲状态。任何区间汇总都可能存在类似问题。
当需要确切了解发生了什么时,可以使用跟踪工具来检查I/O事件。
65、描述随机和顺序磁盘 I/O 的性能差异。
存储设备 I/O 性能特性
旋转磁盘
- I/O 操作涉及 寻道 和 旋转
- 随机 I/O 需要磁盘头在扇区间移动
- 性能调优需: 识别并消除随机 I/O
基于闪存的 SSD
- 随机 和 顺序读取 模式下性能差异不大
- 可能因以下因素存在小差异:
- 地址查找缓存
写入操作
- 小于块大小的写入,尤其是 随机写入
- 可能因 读-修改-写周期 而产生性能损失
文件系统优化
- 为减少随机 I/O,会将文件数据 顺序连续放置 在磁盘上 </

最低0.47元/天 解锁文章
1077

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



