鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

openEuler

RocksDB写场景中,当写入数据达到一定数量时,后台线程需要进行数据compaction操作,若compaction操作过慢时,会产生写停现象,导致数据暂时无法继续写入。在compaction过程中会调用压缩算法进行数据压缩,优化压缩算法能够有效提高compaction效率,从而提高RocksDB写性能。

鲲鹏加速引擎KAE(Kunpeng Accelerator Engine)是基于鲲鹏920处理器提供的硬件加速解决方案,其中包含了KAE加解密、KAEZip、KAELz4和KAEZstd。当RocksDB使用zstd作为compaction过程中的压缩算法时,使用KAEZstd可以对其压缩过程进行加速。

  1. License申请和安装,具体操作请参见《华为服务器iBMC许可证 使用指导》。
  2. 参见获取软件包获取KAE-kae2.zip,放置于“/home”目录下。
  3. “/home”目录下解压KAE-kae2.zip,进入KAE源码包目录。
    cd /home
    unzip KAE-kae2.zip
    cd KAE-kae2
  4. 安装依赖。
    yum install -y numactl-devel pciutils openssl-devel automake m4 perl libtool zlib lzma lz4 make patch
    yum install -y kernel-devel-5.10.0-216.0.0.115.oe2203sp4.aarch64

    安装kernel-devel时,使用uname -r查询当前内核版本,kernel-devel必须与当前内核版本一致。

  5. 在KAE源码包目录中请参见以下步骤分模块进行安装。
    1. 安装内核驱动。
      1. 执行以下命令安装内核驱动。
        sh build.sh driver
      2. 执行以下命令查看是否存在加速引擎文件系统。
        ll /sys/class/uacce/

        回显信息如下。

        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_hpre-2 -> ../../devices/pci0000:78/0000:78:00.0/0000:79:00.0/uacce/hisi_hpre-2
        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_hpre-3 -> ../../devices/pci0000:b8/0000:b8:00.0/0000:b9:00.0/uacce/hisi_hpre-3
        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_sec2-0 -> ../../devices/pci0000:74/0000:74:01.0/0000:76:00.0/uacce/hisi_sec2-0
        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_sec2-1 -> ../../devices/pci0000:b4/0000:b4:01.0/0000:b6:00.0/uacce/hisi_sec2-1
        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_zip-4 -> ../../devices/pci0000:74/0000:74:00.0/0000:75:00.0/uacce/hisi_zip-4
        lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_zip-5 -> ../../devices/pci0000:b4/0000:b4:00.0/0000:b5:00.0/uacce/hisi_zip-5
      3. 执行以下命令查看驱动安装情况判断驱动是否安装成功。
        lsmod | grep uacce

        回显信息如下。

        uacce                  32768  3 hisi_sec2,hisi_qm,hisi_zip
    2. 安装用户态驱动。
      1. 执行以下命令安装用户态驱动。
        sh build.sh uadk
      2. 执行以下命令查看用户驱动是否安装成功。
        ll /usr/local/lib/libwd*

        回显信息如下。

        -rwxr-xr-x. 1 root root     961 Aug 22 17:23 /usr/local/lib/libwd_comp.la
        lrwxrwxrwx. 1 root root      19 Aug 22 17:23 /usr/local/lib/libwd_comp.so -> libwd_comp.so.2.6.0
        lrwxrwxrwx. 1 root root      19 Aug 22 17:23 /usr/local/lib/libwd_comp.so.2 -> libwd_comp.so.2.6.0
        -rwxr-xr-x. 1 root root  377872 Aug 22 17:23 /usr/local/lib/libwd_comp.so.2.6.0
        -rwxr-xr-x. 1 root root     973 Aug 22 17:23 /usr/local/lib/libwd_crypto.la
        lrwxrwxrwx. 1 root root      21 Aug 22 17:23 /usr/local/lib/libwd_crypto.so -> libwd_crypto.so.2.6.0
        lrwxrwxrwx. 1 root root      21 Aug 22 17:23 /usr/local/lib/libwd_crypto.so.2 -> libwd_crypto.so.2.6.0
        -rwxr-xr-x. 1 root root  715616 Aug 22 17:23 /usr/local/lib/libwd_crypto.so.2.6.0
        -rwxr-xr-x. 1 root root     907 Aug 22 17:23 /usr/local/lib/libwd.la
        lrwxrwxrwx. 1 root root      14 Aug 22 17:23 /usr/local/lib/libwd.so -> libwd.so.2.6.0
        lrwxrwxrwx. 1 root root      14 Aug 22 17:23 /usr/local/lib/libwd.so.2 -> libwd.so.2.6.0
        -rwxr-xr-x. 1 root root 1342080 Aug 22 17:23 /usr/local/lib/libwd.so.2.6.0
    3. 编译安装KAEZstd。
      1. 执行以下命令安装KAEZstd。
        sh build.sh zstd
      2. 执行以下命令查看KAEZstd是否安装成功。
        ll /usr/local/kaezstd/
        回显信息如下表示安装成功。
        drwxr-xr-x 2 root root 4096 Jun 11 22:29 bin
        drwxr-xr-x 2 root root 4096 Jun 11 22:29 include
        drwxr-xr-x 3 root root 4096 Jun 11 22:29 lib
        drwxr-xr-x 3 root root 4096 Jun 11 22:29 share
      3. 执行以下命令查看生成的文件。
        ll /usr/local/kaezstd/bin/
        回显信息如下。
        lrwxrwxrwx 1 root root      4 Jun 11 22:29 unzstd -> zstd
        -rwxr-xr-x 1 root root 986192 Jun 11 22:29 zstd
        lrwxrwxrwx 1 root root      4 Jun 11 22:29 zstdcat -> zstd
        -rwxr-xr-x 1 root root   3869 Jun 11 22:29 zstdgrep
        -rwxr-xr-x 1 root root     30 Jun 11 22:29 zstdless
        lrwxrwxrwx 1 root root      4 Jun 11 22:29 zstdmt -> zstd
  6. 通过查看硬件设备的队列数来确定程序是否已经调用KAE来加速zstd算法,执行以下命令查看hisi_zip驱动模块对应的队列数,默认情况下队列数为256。
    watch -n 0.2 cat /sys/class/uacce/hisi_zip-*/available_instances
    回显信息:
    Every 0.2s: cat /sys/class/uacce/hisi_zip-0/available_instances/sys/class/uacce/hisi_zip...  localhost.localdomain:
    256
    256
    256
    256

    另开窗口执行7,执行任务时若上述回显中队列数量发生变化,表明KAE压缩加速硬件成功使能。

    Every 0.2s: cat /sys/class/uacce/hisi_zip-0/available_instances/sys/class/uacce/hisi_zip...  localhost.localdomain:
    256
    254
    256
    256