摘要 | 第3-5页 |
ABSTRACT | 第5-6页 |
术语表 | 第9-13页 |
第一章 绪论 | 第13-21页 |
1.1 本文研究的背景与意义 | 第13-14页 |
1.2 相关研究现状 | 第14-16页 |
1.3 存在的问题 | 第16-18页 |
1.4 本文的主要研究内容 | 第18页 |
1.5 论文组织结构 | 第18-19页 |
1.6 本章小结 | 第19-21页 |
第二章 相关技术介绍 | 第21-37页 |
2.1 虚拟化概述 | 第21-22页 |
2.2 I/O虚拟化概述 | 第22-27页 |
2.2.1 CPU模式切换原理 | 第23-24页 |
2.2.2 I/O完全虚拟化 | 第24-26页 |
2.2.3 I/O半虚拟化 | 第26-27页 |
2.2.4 I/O硬件辅助虚拟化 | 第27页 |
2.3 I/O虚拟化性能优化途径 | 第27-31页 |
2.3.1 I/O虚拟化开销分析 | 第27-28页 |
2.3.2 简化客户机操作系统 | 第28-29页 |
2.3.3 减小系统切换频率 | 第29-30页 |
2.3.4 降低每次系统切换开销 | 第30-31页 |
2.4 KVM内核虚拟机 | 第31-36页 |
2.4.1 KVM虚拟化框架 | 第32页 |
2.4.2 KVM虚拟化方法 | 第32-33页 |
2.4.3 I/O完全虚拟化实现方式——Qemu/KVM | 第33-34页 |
2.4.4 I/O半虚拟化实现方式——Virtio | 第34-36页 |
2.5 本章小结 | 第36-37页 |
第三章 KVM网络I/O虚拟化性能优化设计与实现 | 第37-53页 |
3.1 Virtio网络请求传输重要机制 | 第37-42页 |
3.1.1 Virtio网络设备寄存器 | 第37-38页 |
3.1.2 数据传输通道——Virtqueue | 第38-39页 |
3.1.3 数据缓冲区——Vring | 第39-41页 |
3.1.4 通信机制——Hypercall | 第41-42页 |
3.2 前端驱动发送网络请求 | 第42-45页 |
3.2.1 流程分析 | 第42-43页 |
3.2.2 瓶颈分析 | 第43-44页 |
3.2.3 AHC方法及不足 | 第44-45页 |
3.3 后端驱动响应网络请求 | 第45-47页 |
3.3.1 流程分析 | 第45-47页 |
3.3.2 瓶颈分析 | 第47页 |
3.4 TAM方法设计 | 第47-52页 |
3.4.1 TAM前端设计 | 第47-50页 |
3.4.2 TAM后端设计 | 第50-52页 |
3.5 本章小结 | 第52-53页 |
第四章 性能测试与分析 | 第53-63页 |
4.1 实验环境与测试工具 | 第53-56页 |
4.1.1 系统环境 | 第53页 |
4.1.2 Netperf测试工具 | 第53-55页 |
4.1.3 PING测试工具 | 第55页 |
4.1.4 性能指标 | 第55页 |
4.1.5 CPU性能监测工具——vmstat | 第55-56页 |
4.2 实验方案设计 | 第56页 |
4.3 实验结果与分析 | 第56-62页 |
4.3.1 吞吐率 | 第56-57页 |
4.3.2 延时 | 第57-58页 |
4.3.3 每秒处理事务数TPS | 第58-61页 |
4.3.4 CPU利用率 | 第61-62页 |
4.4 本章小结 | 第62-63页 |
第五章 总结与展望 | 第63-65页 |
5.1 全文总结 | 第63-64页 |
5.2 工作展望 | 第64-65页 |
参考文献 | 第65-69页 |
致谢 | 第69-71页 |
攻读硕士学位期间发表的论文 | 第71页 |