使用零拷贝技术提高存储系统性能
- 零拷贝:再进行IO操作时,从磁盘文件读入与写出一般情况下需要至少经过四次的拷贝,而零拷贝技术则是减少文件的拷贝次数;并非不拷贝;
- 四次拷贝分别是(以socket为例),DMA控制器将磁盘文件拷贝到内核缓冲区,内核缓冲区拷贝到用户程序缓存区;用户缓冲区再拷贝到socket缓冲区,再由socket缓存区通过DMA拷贝到网卡;【应用程序不能直接操作访问内核缓存区,必须通过用户缓存区】
- 优化思路:这里很明显,出现了多次的数据拷贝,以及状态切换,第一次拷贝是必须要有的,所以只能避免将数据拷贝到用户缓存区,而是直接将数据拷贝到socket缓冲区,最后通过DMA拷贝到网卡;减少拷贝次数;
- Java中的相关类:
- 其实也就是NIO包下的类,比如FileChannel或SocketChannel等;
---未完待续---
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步