armhf 移植 Redis

本文介绍了如何在ARMHF架构上移植Redis,包括下载源码并交叉编译,测试编译后的二进制文件,以及通过top命令和/proc文件系统进行性能分析,并给出了在am335x开发板上的测试结果。
摘要由CSDN通过智能技术生成

参考博客:交叉编译 redis 5.0 (arm版) https://blog.csdn.net/oSiJieMo/article/details/94466215

1. 下载源码并交叉编译

$ wget http://download.redis.io/releases/redis-6.0.5.tar.gz
$ tar xzf redis-6.0.5.tar.gz
$ cd redis-6.0.5

$ make  MALLOC=libc  CC=arm-linux-gnueabihf-gcc

2. 测试

查看编译的二进制是否是arm平台的

$ file redis-server 
redis-server: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ff8ccd8af83df05960e16a0a948d6b3ffbcc64da, not stripped

拷贝 src 目录下的二进制到开发板

redis-server
redis-benchmark
redis-cli
redis-check-rdb
redis-check-aof
redis-sentinel

启动服务端

$ src/redis-server &

启动客户端

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

3. 性能分析

1. 使用 top 命令
Mem: 52660K used, 456164K free, 11536K shrd, 100K buff, 33760K cached
CPU:  0.3% usr  0.3% sys  0.0% nic 99.2% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.69 0.65 0.63 1/52 1346
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 1337  1097 root     S    28576  5.6   0  0.2 ./redis-server *:6379
 1346  1097 root     R     2940  0.5   0  0.2 top
2. 通过 /proc 文件系统
[root@tcu /mnt/usb/redis]# cat /proc/1337/status 
Name:	redis-server
Umask:	0022
State:	S (sleeping)

VmPeak:	   28660 kB
VmSize:	   28576 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	    2324 kB
VmRSS:	    2324 kB

VmData:	   25552 kB
VmStk:	     132 kB
VmExe:	     788 kB
VmLib:	    1572 kB
VmPTE:	      14 kB
VmSwap:	       0 kB

内存相关字段解释:

VmSize(KB) 任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页 
VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm) 
VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss) 
VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm) 
VmStk(KB) 任务在用户态的栈的大小 (stack_vm) 
VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code) 
VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib) 
VmPTE 该进程的所有页表的大小,单位:kb 
3. 执行 redis的benchmark
./redis-benchmark

在 am335x 上的测试结果

[root@tcu /mnt/usb/redis]# ./redis-benchmark 
====== PING_INLINE ======
  100000 requests completed in 20.03 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

0.00% <= 1.9 milliseconds
0.00% <= 2 milliseconds
0.82% <= 3 milliseconds
1.90% <= 4 milliseconds
4.36% <= 5 milliseconds
18.69% <= 6 milliseconds
39.40% <= 7 milliseconds
61.04% <= 8 milliseconds
81.03% <= 9 milliseconds
93.67% <= 10 milliseconds
96.77% <= 11 milliseconds
98.02% <= 12 milliseconds
98.77% <= 13 milliseconds
99.22% <= 14 milliseconds
99.49% <= 15 milliseconds
99.69% <= 16 milliseconds
99.88% <= 17 milliseconds
99.98% <= 18 milliseconds
100.00% <= 19 milliseconds
100.00% <= 20 milliseconds
4992.51 requests per second

====== PING_BULK ======
  100000 requests completed in 20.48 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

0.00% <= 1 milliseconds
0.00% <= 2 milliseconds
0.48% <= 3 milliseconds
4.93% <= 4 milliseconds
11.56% <= 5 milliseconds
31.38% <= 6 milliseconds
51.71% <= 7 milliseconds
71.92% <= 8 milliseconds
89.02% <= 9 milliseconds
97.84% <= 10 milliseconds
99.83% <= 11 milliseconds
99.93% <= 12 milliseconds
99.93% <= 13 milliseconds
99.95% <= 14 milliseconds
99.98% <= 15 milliseconds
99.99% <= 16 milliseconds
99.99% <= 17 milliseconds
100.00% <= 17 milliseconds
4882.57 requests per second

1352:M 18 Jul 2020 15:59:33.191 * 10000 changes in 60 seconds. Saving...
1352:M 18 Jul 2020 15:59:33.196 * Background saving started by pid 1360
1360:C 18 Jul 2020 15:59:33.523 * DB saved on disk
1360:C 18 Jul 2020 15:59:33.525 * RDB: 0 MB of memory used by copy-on-write
1352:M 18 Jul 2020 15:59:33.606 * Background saving terminated with success
====== SET ======
  100000 requests completed in 22.06 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

0.00% <= 2 milliseconds
1.22% <= 3 milliseconds
5.88% <= 4 milliseconds
10.77% <= 5 milliseconds
20.88% <= 6 milliseconds
34.68% <= 7 milliseconds
45.76% <= 8 milliseconds
52.62% <= 9 milliseconds
56.74% <= 10 milliseconds
61.73% <= 11 milliseconds
70.71% <= 12 milliseconds
82.19% <= 13 mi
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值