参考博客:交叉编译 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