RISC-V技术论坛
直播中

xusiwei1236

13年用户 192经验值
擅长:嵌入式技术
私信 关注
[经验]

【昉·星光 2 高性能RISC-V单板计算机体验】Redis源码编译和性能测试以及与树莓派4B对比

本文首先介绍Redis是什么,然后介绍如何在VisionFive2上编译Redis源码,以及从源码安装Redis,最后介绍如何在VisionFive2上运行Redis基准测试,并在树莓派4B上运行同一版本的Redis服务和Redis基准测试。测试结果显示,VisionFive2上Redis性能明显由于树莓派4B,这一定程度上说明——VisionFive2的CPU、内存综合性能优于树莓派4B。

一、Redis是什么

维基百科的介绍是:

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。

Redis官网的介绍是:

The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.

数以百万计的开发人员用作数据库、缓存、流式处理引擎和消息代理的开源内存数据存储。

1.1 更新软件源

VisionFive官方维护了Debian版本的镜像,基本上每个月都会发布新版本。

国内使用Debian更新,需要修改apt软件源,可以在debian官网找到国内镜像:

https://www.debian.org/mirror/list.zh-cn.html

例如,我找到的:

http://ftp.cn.debian.org/debian/

可以将原来 /etc/apt/source.list 文件中的链接全部替换为 http://ftp.cn.debian.org/debian/

之后,再使用 apt update 更新本地包索引,下次 apt install 速度就会更快了。

二、源码编译Redis

2.1 安装git和编译工具链

# 安装 git 和编译工具链
sudo apt  install git build-essential

2.2 下载Redis源码

安装完git之后,就可以使用git下载Redis源码了:

git clone https://github.com/redis/redis.git

下载完成后,使用如下命令切换到稳定版本的tag,例如最近的 7.2.3:

git checkout 7.2.3

2.3 编译Redis源码

使用如下命令编译Redis源码:

make MALLOC=jemalloc -j 4

编译命令最后输出如下:

Untitled

可以看到,最后提示链接(LINK)的有三个可执行程序,分别为:

  • redis-server Redis服务程序,用于提供服务;
  • redis-benchmark Redis基准测试程序,用于进行性能测试;
  • redis-cli Redis命令行程序,用于操作Redis服务中的数据;

2.4 安装Redis

使用如下命令将Redis可执行程序安装到系统目录:

sudo make install

命令输出如下:

Untitled

可以看到,前面提到的三个可执行程序都安装了,安装目录为/usr/local/bin,可以用which redis-cli命令验证:

Untitled

三、运行Redis基准测试

3.1 查看redis-server用法

初次使用之前,使用redis-server --help命令,可以查看redis-server命令行选项用法:

Untitled

3.2 设置overcommit_memory选项

直接运行redis-server --check-system命令,检查Redis所需系统环境:

Untitled

提示打开overcommit_memory选项,需要执行:

sysctl vm.overcommit_memory=1

或者将该配置写入到配置文件中,重启之后依然能够生效:

echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf

3.3 启动redis-server

使用redis目录下的配置文件,启动redis-server服务:

Untitled

3.4 查看redis-benchmark用法

使用redis-benchmark --help命令,可以查看redis-benchmark命令行选项用法:

Untitled

Untitled

3.5 运行redis-benchmark基准测试

默认参数执行redis-benchmark,将会连接到本地主机的redis服务,并执行所有基准测试用例:

Untitled

(-q选项进输出query/sec,不输出其他统计信息)

可以看到大部分命令的QPS(Query per second)能达到26000左右。

如果需要单独测试一个测试用例,则可以通过-t选项指定。

测试set命令100000次,使用命令:

redis-benchmark -t set -n 100000

输出结果为:

Untitled

Untitled

3.6 基准测试结果和树莓派4B对比

在树莓派4B开发板上,使用同样的操作,运行同样版本的redis-server和redis-benchmark,得到的测试结果如下:

Untitled

可以看到,大部分QPS在16000,显著低于VisionFive2的26000左右。

四、本篇总结

Redis基准测试成绩主要取决于CPU、内存、缓存的综合性能,VisionFive2成绩高于树莓派4B,说明在CPU、内存、缓存综合性能方面VisionFive2并不比树莓派4B差。

五、参考链接

  1. Redis官网: https://redis.io/
  2. Redis源码仓: https://github.com/redis/redis/
  3. Redis码云镜像仓(国内下载速度较快): https://gitee.com/mirrors/redis
  4. 树莓派OS镜像下载页面: https://www.raspberrypi.com/software/operating-systems/
  5. 树莓派OS启动分区config.txt说明:https://www.raspberrypi.com/documentation/computers/config_txt.html
  6. 树莓派OS启动分区cmdline.txt说明: Raspberry Pi Documentation - Configuration

更多回帖

发帖
×
20
完善资料,
赚取积分