摘要

响应时间是服务等级目标SLO(Service Level Objective)的一个重要性能指标,与资源的使用量有关。资源充足可以保证请求的正常执行,响应时间短;资源不足,请求需等待资源,响应时间长。在云计算虚拟化环境下,控制资源的访问既有对于整体资源的控制,也有对CPU、网络带宽等单个资源的控制,但是目前很少有通过对网络I/O请求的直接控制来保证响应时间。虚拟化技术为了获得更好的性能,大多采用半虚拟化框架Virtio。网络I/O请求通过Virtio共享通道进行传输,使得在Virtio设立网络I/O请求的门控机制成为可能。文中利用双端聚合方法TAM(Two-end Aggregation Method),提出实时网络I/O请求门控机制GMRNR(Gating Mechanism for Real-time Network I/O Requests),通过控制网络I/O请求经过Virtio的时刻,保证各类请求的响应时间。GMRNR设立在Virtio前端virtio-net模块中,将请求按照其响应时间指标分级,采用计时器和聚合队列长度来控制不同级别请求经过Virtio的时刻和聚合频率,保证请求的响应时间。实验测试表明:GMRNR能够区分网络I/O请求优先级,在资源充足时,使得不同等级的网络I/O请求在各自要求时间内完成;在资源不充足时能优先保证高优先级的网络I/O请求的响应时间。同时,GMRNR具有好的资源利用效率。