Trace回放
1 概述
1.1 Trace的概念
这里说的Trace指的是IO Trace。Trace的解释是在真实系统运行一段时间内磁盘所接受的IO请求的记录[1]。
Trace的格式有很多,比如SPC Trace文本规范[2]。SPC格式的trace的每条IO请求记录包含5个域,分别为:
1. 设备号;
2. 逻辑块地址(LBA),以扇区为单位;
3. 请求数据的长度,以字节为单位;
4. 请求类型,读请求或写请求,用w或r表示;
5. 请求下达的时间戳。格式为x.xxxxxx,单位为秒,小数点后有六位,精确到us。
1.2 Trace 的回放
Trace回放的目的就是让我们的系统模拟真实的工作负载,从而测试系统的性能。Trace回放主要的测试指标为io的平均响应时间。我们主要通过在某些请求段中的IO平均响应时间或某段时间内的IO平均响应时间来评价系统。
Trace回放的方式主要有两种:
1. 压力回放,忽略时间戳的回放,不间断的回放每条请求。
2. 守时回放,保证请求在时间戳之前不会发送。
1.3 Trace 的处理
我们获得的trace不一定适合我们研究的系统。如在SPC Trace中有设备号,可能我们的系统并没有这么多设备或者设备大小和trace中的不一致等。所以我们需要处理我们获得的trace文件,使之适合我们的系统。