使用零拷贝技术提高存储系统性能

  • 零拷贝:再进行IO操作时,从磁盘文件读入与写出一般情况下需要至少经过四次的拷贝,而零拷贝技术则是减少文件的拷贝次数;并非不拷贝;
    • 四次拷贝分别是(以socket为例),DMA控制器将磁盘文件拷贝到内核缓冲区,内核缓冲区拷贝到用户程序缓存区;用户缓冲区再拷贝到socket缓冲区,再由socket缓存区通过DMA拷贝到网卡;【应用程序不能直接操作访问内核缓存区,必须通过用户缓存区】
    • 优化思路:这里很明显,出现了多次的数据拷贝,以及状态切换,第一次拷贝是必须要有的,所以只能避免将数据拷贝到用户缓存区,而是直接将数据拷贝到socket缓冲区,最后通过DMA拷贝到网卡;减少拷贝次数;
    • Java中的相关类:
      • 其实也就是NIO包下的类,比如FileChannel或SocketChannel等;

---未完待续---

posted @   乐可乐  阅读(2)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示