基于申威架构的Redis 适配安装及性能验证

2023-10-22 16:01:36鲍正刚
智能计算机与应用 2023年8期
关键词:配置文件线程指令

王 丰, 鲍正刚

(中电科申泰信息科技有限公司, 江苏 无锡 214000)

0 引 言

Redis 作为内存数据库得到广泛应用[1],主要是安装在基于x86 或ARM 架构处理器的服务器上使用,并提供数据存储服务。

近年来,国产处理器的研发已取得可观成就。申威架构的处理器作为纯国产指令集架构处理器,现已应用于服务器和PC 终端,其中的申威SW3231采用的是“申威64”自主指令系统[2],考虑到处理器为国产指令架构,故而软件生态受到较大限制。目前,随着国产申威处理器在民用服务中的推广使用,为实现国产申威架构生态发展,在申威架构上编译安装Redis 内存数据库,同时也要验证在申威处理器服务器上运行性能。

1 编译安装

1.1 安装准备

在对Redis 源码编译安装前,需要设置好其安装或编译所需的基础环境,设置时主要涉及到:gcc、gcc-c++、pcre-devel、zlib zlib-devel、openssl openssldevel、tcl8.6.1。

综合前文论述中,gcc、gcc-c++、pcre-devel、zlib zlib-devel、openssl openssl-devel 可通过yum 指令进行在线直接安装,安装命令示例为: yum install openssl openssl-devel。

准备待编译安装的Redis 源码包:redis-5.0.3.tar、tcl8.6.1-src.tar 可在官网下载源码包或者git 资源库中下载源码,tcl8.6.1 为Redis 安装资源依赖,部分操作系统中已预安装、不需要重复安装,未安装的则要进行编译安装。

1.2 编译安装

(1)解压redis-5.0.3.tar.gz。 此处用到的指令为:

#tar -zxvf redis-5.0.3.tar.gz

(2)进入scr 目录并编译。 此处用到的指令为:# cd redis-5.0.3/src

(3)执行编译。 此处用到的指令为:

# make

编译过程中可能出现报错,报错时具体如图1所示。

图1 编译报错Fig. 1 Compilation error

(4)重新编译。 此处用到的指令为:

# make MALLOC =libc

(5)编译通过后执行测试。 此处用到的指令为:

# make test

编译测试如出现图2 显示的报错,就要对tcl8.6.1-src.tar.gz 进行解压、及编译安装,此后再重新执行对Redis 的编译安装。

图2 缺tcl 报错Fig. 2 Missing tcl error

(6)编译安装。 此处用到的指令为:

# make install PREFIX=/usr/local/redis

编译测试通过后即可执行编译安装,本文指定安装路径为:/usr/local/redis,编译安装后安装文件将位于该目录之下。

1.3 配置

(1)配置文件。 从解压的源码安装包中找到配置文件reds.conf,拷贝该文件至redis 的安装路径的bin 目录下:# cp redis.conf/usr/local/redis/bin/。

(2)配置。 安装完成后进行配置,主要配置包含有连接端口、是否后台运行、数据存放地址、log 日志存放位置以及接入密码等。

其中,端口一般采用默认端口,后台启动需要将daemonize no 改为daemonize yes;数据存放地址默认存放在安装目录bin 文件夹下,通过修改配置文件中dir 后面的路径来修改存放地址,本文存放地址修改为:/home/data/redis-data 目录下;log 日志配置需要在logfile 配置路径和log 写入的文件,本文配置为:/usr/local/redis/logs/redis-server.log;系统默认设置是不需要密码登录,如需要启用接入密码则是把配置文件中# requirepass foobared 的注释去掉(即去掉#)[3],然后设置自己的密码。

配置文件修改完成后即可启动Redis 服务,服务开启后在后台运行,运行过程中日志可在配置文件中配置的地址下查看对应的运行日志。

2 性能验证

完成编译适配后,通过统计写入和删除不同大小数据包所耗时间,对Redis 数据缓存服务在申威架构处理器上应用的性能进行验证分析[4]。 对此拟展开阐释分述如下。

(1)存储性能。 存储性能验证:编写Java 测试程序,调用Redis 服务,将数据写入。 程序运行在多核x86 系统中,测试程序将同时开启100 个线程,每个线程单独写入10 000 条数据。

采集所有线程的运行时间,对所得结果进行平均,即可得到每个线程写入数据的耗时,耗时结果见表1,耗时曲线如图3 所示。

表1 10 000 条数据写入平均耗时表Tab. 1 Table of average time for writing 10 000 pieces of data

图3 10 000 条数据写入平均耗时曲线图Fig. 3 Average time-consuming curve of writing 10 000 pieces of data

(2)删除性能。 删除性能验证时,同样采用Java 程序进行调用Redis 服务数据的删除,程序也是运行于x86 操作系统中,同时开启100 个线程,每个线程删除10 000 条数据,采集到所有线程所耗时间,并得到平均数据。

至此,研究得到的每个线程删除数据平时耗时结果见表2,耗时曲线如图4 所示。

表2 10 000 条数据删除平均耗时表Tab. 2 Table of average time for deleting 10 000 pieces of data

图4 10 000 条数据删除平均耗时曲线图Fig. 4 Average time-consuming curve of deleting 10 000 pieces of data

本节点对Redis 数据缓存服务在申威架构(SW3231)处理器进行数据存储和数据删除性能的验证,数据在大于512 字节时,不论写入、还是删除,在数据处理中的用时出现明显增加,但总体上已能满足民用市场业务需求。

由上述验证可见,申威架构处理器已经在民用服务生态有了较大的跨越,性能使用基本上已然满足了现有民用市场的基本需求,完全可以实现申威架构处理器作为Redis 数据缓存业务服务器来提供业务服务。

3 结束语

综上所述,Redis 在目前的申威架构处理器下已经可以实现编译适配,并且可作为独立数据缓存服务器来提供业务服务;而在本次研究中,还对Redis数据缓存服务在申威架构处理器运行过程中的性能做了验证,验证结果表明申威架构处理器对Redis数据缓存服务的支撑完全满足当前大部分网络业务需求;自主可控的申威架构处理器在数据缓存功能上已经能够达到市场民用业务需求[5],虽然其运行耗时在较大量级数据的存储和删除过程中出现了明显增大,但Redis 服务作为数据缓存技术,在业务需求中通常都以小数据为主。 同时,申威架构处理也在不断地进行升级完善,完全国产化的申威处理器已经能够满足民用业务上的需求。

猜你喜欢
配置文件线程指令
听我指令:大催眠术
提示用户配置文件错误 这样解决
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
ARINC661显控指令快速验证方法
测控技术(2018年5期)2018-12-09 09:04:26
LED照明产品欧盟ErP指令要求解读
电子测试(2018年18期)2018-11-14 02:30:34
忘记ESXi主机root密码怎么办
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
坐标系旋转指令数控编程应用
机电信息(2014年27期)2014-02-27 15:53:56
Linux线程实现技术研究