• RocketMQ 零拷贝


    一、零拷贝原理:Consumer 消费消息过程,使用了零拷贝,零拷贝包含以下两种方式:

    1、使用 mmap + write 方式  (RocketMQ选择的方式:因为有小块数据传输的需求,效果会比 sendfile 更好)

    优点:即使频繁调用,使用小块文件传输,效率也很高;

    缺点:不能很好的利用 DMA 方式,会比 sendfile 多消耗CPU,内存安全性控制复杂,需要避免 JVM Crash 问题。

    2、使用 sendfile 方式

    优点:可以利用 DMA 方式,消耗 CPU 较少,大块文件传输效率高,无内存安全新问题;

    缺点:小块文件效率低亍 mmap 方式,只能是 BIO 方式传输,不能使用 NIO。

    二、RocketMQ 文件系统

    1、RocketMQ 选择 Linux Ext4 文件系统 && IO调度算法调整为deadline:

    Ext4 文件系统删除 1G 大小的文件通常耗时小亍 50ms,而 Ext3 文件系统耗时约 1s 左右,且删除文件时,磁盘 IO 压力极大,会导致 IO 写入超时;

    文件系统 IO 调度算法需要调整为 deadline,因为 deadline 算法在随机读情况下,可以合幵读请求为顺序跳跃方式,从而提高读 IO 吞吐量。

  • 相关阅读:
    笔记0510
    笔记0514
    笔记0521
    GridView专题
    笔记0418
    笔记0516
    笔记0515
    笔记0507
    Python 安装与环境变量配置
    ffmpeg 下载安装和简单应用
  • 原文地址:https://www.cnblogs.com/lwhctv/p/10999756.html
Copyright © 2020-2023  润新知