Stress Test
Kuaijie Primary and Standby Redis Product Test
Test Environment
Redis-server
Software version: 6.0
Server model: Kuaijie Edition Primary and Standby Redis, Physical Machine Ordinary Model
Product specifications: Kuaijie 1G, Kuaijie 2G, Kuaijie 4G, Kuaijie 6G, Kuaijie 8G, Physical Machine Ordinary Model
Redis-benchmark
Server model: Kuaijie O type
System version: CentOS 8.3
Machine configuration: 16C/16G
Memtier_benchmark
Server model: Kuaijie O type
System version: CentOS 6.4
Machine configuration: 16C/16G
Test Scenarios
1. Different number of connections, pipeline closed
Test script:
#!/bin/bash
for clients in {1,2,4,8,16,32,64,128,256,512,800}; do
redis-benchmark -c $connection -n 1000000 -h IP -d 256 -t get,set -q --threads 4
done
Test results
Set Performance
Number of Connections | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|---|
Kuaijie 1G | 14118 | 26991 | 50571 | 83222 | 117619 | 137741 | 153822 | 166417 | 147819 | 153609 | 153421 |
Kuaijie 2G | 14067 | 27550 | 51986 | 85077 | 105241 | 142653 | 163671 | 142633 | 142612 | 153468 | 159565 |
Kuaijie 4G | 13921 | 28136 | 51221 | 84997 | 117495 | 142673 | 159769 | 159769 | 159846 | 159616 | 153421 |
Kuaijie 6G | 13921 | 27773 | 48711 | 85091 | 114116 | 142653 | 166334 | 166417 | 166361 | 153444 | 153444 |
Kuaijie 8G | 14068 | 27939 | 50568 | 86850 | 117495 | 142633 | 159744 | 159718 | 159872 | 159769 | 147819 |
Physical Machine Ordinary Model | 8979 | 16774 | 28036 | 40722 | 52919 | 59917 | 64263 | 66813 | 68694 | 69101 | 72364 |
Get Performance
Number of Connections | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|---|
Kuaijie 1G | 16509 | 30972 | 58750 | 102438 | 153657 | 181587 | 210482 | 199720 | 199680 | 190258 | 199521 |
Kuaijie 2G | 15667 | 28951 | 57960 | 96880 | 142673 | 173671 | 189720 | 188680 | 180817 | 181827 | 192216 |
Kuaijie 4G | 16509 | 30733 | 57690 | 97880 | 142673 | 181620 | 199760 | 190367 | 190403 | 189760 | 192897 |
Kuaijie 6G | 16578 | 30709 | 57822 | 98427 | 142653 | 173671 | 190216 | 199680 | 195114 | 191587 | 212024 |
Kuaijie 8G | 16578 | 30815 | 59633 | 102553 | 142836 | 190222 | 210260 | 190186 | 199920 | 210128 | 209995 |
Physical Machine Ordinary Model | 9973 | 19272 | 31571 | 47803 | 66246 | 86145 | 90371 | 90973 | 93531 | 95892 | 91907 |
2. Different data size, pipeline closed
Test script:
#!/bin/bash
for data_size in {1,8,64,512,4096}; do
redis-benchmark -c 64 -n 1000000 -h IP -d $data_size -t get,set -q --threads 4
done
# 32KiB size of data size run long time easy to make 1GB capacity instance oom.
data_size=32768
redis-benchmark -c 64 -n 50000 -h IP -d $data_size -t get,set -q --threads 4
Test results
Set Performance
Bytes | 1 Byte | 8 Bytes | 64 Bytes | 512 Bytes | 4096 Bytes | 32768 Bytes |
---|---|---|---|---|---|---|
Kuaijie 1G | 173671 | 173852 | 166444 | 128998 | 66622 | 10748 |
Kuaijie 2G | 181521 | 173671 | 159769 | 137741 | 65449 | 12077 |
Kuaijie 4G | 181752 | 181587 | 173671 | 142816 | 61413 | 11659 |
Kuaijie 6G | 166417 | 159795 | 166472 | 147928 | 68922 | 11075 |
Kuaijie 8G | 181554 | 163609 | 152694 | 143657 | 66613 | 12676 |
Get Performance
Bytes | 1 Byte | 8 Bytes | 64 Bytes | 512 Bytes | 4096 Bytes | 32768 Bytes |
---|---|---|---|---|---|---|
Kuaijie 1G | 199680 | 190186 | 190439 | 190222 | 117467 | 11425 |
Kuaijie 2G | 199720 | 199960 | 199720 | 190186 | 117605 | 12028 |
Kuaijie 4G | 210260 | 199960 | 210216 | 199960 | 121036 | 13319 |
Kuaijie 6G | 199415 | 190222 | 199920 | 199680 | 117605 | 12519 |
Kuaijie 8G | 199920 | 181554 | 181554 | 181554 | 117481 | 14490 |
3. Different number of connections, pipeline enabled
Test script:
#!/bin/bash
for clients in {1,2,4,8,16,32,64,128,256,512,800}; do
redis-benchmark -c $clients -n 5000000 -P 100 -h IP -d 256 -t get,set -q --threads 4
done
Test results
Set Performance
Number of Connections | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|---|
Kuaijie 1G | 332933 | 487044 | 486854 | 524989 | 525430 | 525265 | 511561 | 498305 | 463907 | 433162 | 406471 |
Kuaijie 2G | 350434 | 475465 | 511823 | 539257 | 525430 | 511770 | 498454 | 511142 | 453391 | 424052 | 442712 |
Kuaijie 4G | 356709 | 475330 | 539548 | 539374 | 524824 | 511718 | 524989 | 511195 | 464037 | 443262 | 414593 |
Kuaijie 6G | 344400 | 475556 | 512242 | 525154 | 525320 | 538851 | 498902 | 511195 | 498256 | 423980 | 415006 |
Kuaijie 8G | 350459 | 487187 | 540073 | 539374 | 539723 | 554262 | 538793 | 511665 | 463520 | 433200 | 398883 |
Physical Machine Ordinary Model | 137155 | 165579 | 182681 | 178424 | 189343 | 184836 | 195266 | 207331 | 202609 | 193318 | 190614 |
Get Performance
Number of Connections | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|---|
Kuaijie 1G | 665778 | 1174536 | 1537042 | 1662786 | 1537042 | 1663893 | 1532801 | 1533742 | 1424095 | 1532332 | 1421666 |
Kuaijie 2G | 644329 | 1109631 | 1535626 | 1663340 | 1663893 | 1662234 | 1534212 | 1661681 | 1534683 | 1423284 | 1328021 |
Kuaijie 4G | 645778 | 1174812 | 1537111 | 1606782 | 1663893 | 1661681 | 1662234 | 1662234 | 1662786 | 1533272 | 1532332 |
Kuaijie 6G | 645867 | 1051082 | 1663340 | 1665001 | 1665001 | 1711594 | 1661129 | 1660577 | 1661129 | 1532801 | 1531393 |
Kuaijie 8G | 644246 | 1174536 | 1665556 | 1663340 | 1663340 | 1661681 | 1533742 | 1533742 | 1535626 | 1533742 | 1423284 |
Physical Machine Ordinary Model | 230075 | 406834 | 418795 | 475737 | 491980 | 498952 | 505152 | 542711 | 501705 | 501403 | 482020 |
4. Short Connection Stress Test
The short connection stress test aims to test the performance of different Redis products under different read and write ratio conditions.
Test script:
#!/bin/bash
memtier_benchmark -s IP -p 6379 -c 30 -t 8 -n 1000 --ratio=10:0 --reconnect-interval=1
memtier_benchmark -s IP -p 6379 -c 30 -t 8 -n 1000 --ratio=5:5 --reconnect-interval=1
memtier_benchmark -s IP -p 6379 -c 30 -t 8 -n 1000 --ratio=0:10 --reconnect-interval=1
Test Results
Read/Write Ratio | 10:0 | 5:5 | 0:10 |
---|---|---|---|
Kuaijie 1G | 29111 | 28039 | 28433 |
Kuaijie 2G | 27748 | 28136 | 27952 |
Kuaijie 4G | 28269 | 28190 | 27664 |
Kuaijie 6G | 27491 | 27870 | 28297 |
Kuaijie 8G | 28037 | 27965 | 27916 |
Performance Enhanced Redis Product Test
Redis-server
Software Version: Performance Enhanced Redis
Product Specifications: 4G, 6G, 8G, 12G, 16G, 24G, 32G, 40G, 48G, 56G, 64G
Redis-benchmark
Server Model: Kuaijie O Type
System Version: CentOS 8.3
Machine Configuration: 16C/16G
Test Scenarios
1. Different Number of Connections
Test Script:
#!/bin/bash
for clients in {1,2,4,8,32,64,128,256,512,800}; do
redis-benchmark -c $clients -n 10000000 -h IP -d 256 -t get,set -q --threads 8
done
Test Results
Set Performance
Number of Connections | 1 | 2 | 4 | 8 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|
Multi-Core Primary and Standby 4G | 18669 | 34442 | 55594 | 66216 | 193702 | 227917 | 230542 | 226623 | 223428 | 227855 |
Multi-Core Primary and Standby 6G | 18070 | 30221 | 58308 | 76917 | 200934 | 240934 | 232541 | 231197 | 232498 | 227195 |
Multi-Core Primary and Standby 8G | 19633 | 34442 | 64437 | 76913 | 195114 | 219770 | 218574 | 217386 | 217339 | 219712 |
Multi-Core Primary and Standby 12G | 19827 | 36993 | 65492 | 69315 | 157475 | 217386 | 220984 | 215049 | 204035 | 209929 |
Multi-Core Primary and Standby 16G | 19976 | 34891 | 66666 | 81457 | 191372 | 224709 | 224714 | 216202 | 218541 | 219702 |
Multi-Core Primary and Standby 24G | 20626 | 36619 | 63592 | 77058 | 176202 | 188675 | 228560 | 210508 | 220935 | 220945 |
Multi-Core Primary and Standby 32G | 17908 | 34013 | 56576 | 59622 | 200996 | 238083 | 239503 | 231203 | 228529 | 228503 |
Multi-Core Primary and Standby 40G | 20723 | 39170 | 69565 | 104437 | 155634 | 238089 | 248434 | 239503 | 235249 | 235244 |
Multi-Core Primary and Standby 48G | 17756 | 34071 | 61162 | 103358 | 178558 | 231203 | 245398 | 233912 | 227231 | 228508 |
Multi-Core Primary and Standby 56G | 18801 | 31629 | 60352 | 105680 | 190421 | 228169 | 233481 | 220526 | 237450 | 227863 |
Multi-Core Primary and Standby 64G | 18243 | 34441 | 60990 | 105259 | 123819 | 227252 | 249975 | 235271 | 238049 | 239440 |
Get Performance
Number of Connections | 1 | 2 | 4 | 8 | 32 | 64 | 128 | 256 | 512 | 800 |
---|---|---|---|---|---|---|---|---|---|---|
Multi-Core Primary and Standby 4G | 20536 | 37313 | 68530 | 109436 | 240582 | 308875 | 336123 | 323881 | 326503 | 337478 |
Multi-Core Primary and Standby 6G | 20830 | 38940 | 74486 | 112037 | 238449 | 336123 | 333803 | 344815 | 330545 | 344768 |
Multi-Core Primary and Standby 8G | 22765 | 42552 | 73308 | 114933 | 229740 | 305334 | 319989 | 327847 | 340912 | 360321 |
Multi-Core Primary and Standby 12G | 23364 | 43903 | 82372 | 119753 | 189566 | 310048 | 317460 | 296269 | 350840 | 333500 |
Multi-Core Primary and Standby 16G | 23529 | 43287 | 76538 | 122319 | 224757 | 312490 | 322570 | 333311 | 319959 | 314891 |
Multi-Core Primary and Standby 24G | 23627 | 42685 | 79114 | 123449 | 249993 | 288089 | 322570 | 317450 | 320000 | 331071 |
Multi-Core Primary and Standby 32G | 20281 | 36788 | 74678 | 111724 | 264893 | 330567 | 360347 | 336111 | 347898 | 333277 |
Multi-Core Primary and Standby 40G | 24406 | 45195 | 72118 | 136050 | 240940 | 341868 | 360894 | 333151 | 384718 | 370329 |
Multi-Core Primary and Standby 48G | 20520 | 38527 | 65681 | 126982 | 170905 | 319989 | 357117 | 373775 | 344803 | 366864 |
Multi-Core Primary and Standby 56G | 20240 | 38379 | 69435 | 119383 | 212363 | 287728 | 330447 | 316876 | 306955 | 322242 |
Multi-Core Primary and Standby 64G | 20489 | 37374 | 72642 | 130288 | 170277 | 307654 | 325192 | 392354 | 385835 | 382252 |
2. Different Data Size
Test script:
#!/bin/bash
for data_size in {16,32,64,128,256,512,1024,4096,8192,32768}; do
redis-benchmark -c 200 -n 10000000 -h IP -d $data_size -t get,set -q --threads 8
done
Test Results
Set Performance
Bytes | 16 Bytes | 32 Bytes | 64 Bytes | 128 Bytes | 256 Bytes | 512 Bytes | 1024 Bytes | 4096 Bytes | 8192 Bytes | 32768 Bytes |
---|---|---|---|---|---|---|---|---|---|---|
Multi-Core Primary and Standby 4G | 283679 | 277777 | 266666 | 263150 | 245380 | 228555 | 196070 | 92569 | 54021 | 10748 |
Multi-Core Primary and Standby 6G | 258044 | 369329 | 501356 | 504464 | 518645 | 478739 | 186764 | 85420 | 48751 | 10771 |
Multi-Core Primary and Standby 8G | 248428 | 243890 | 249770 | 259726 | 240952 | 206206 | 184775 | 86840 | 49410 | 11329 |
Multi-Core Primary and Standby 12G | 250000 | 246907 | 238083 | 233912 | 220535 | 206407 | 183865 | 87779 | 49978 | 12478 |
Multi-Core Primary and Standby 16G | 249993 | 245392 | 245380 | 233912 | 221209 | 207294 | 185669 | 87112 | 49923 | 11282 |
Multi-Core Primary and Standby 24G | 253158 | 243232 | 236680 | 231208 | 216525 | 202501 | 182646 | 86440 | 49450 | 11349 |
Multi-Core Primary and Standby 32G | 248181 | 254770 | 253158 | 263707 | 248439 | 228142 | 204752 | 92203 | 49214 | 12070 |
Multi-Core Primary and Standby 40G | 279696 | 255049 | 249770 | 239509 | 238089 | 204509 | 186770 | 88493 | 50113 | 13310 |
Multi-Core Primary and Standby 48G | 275854 | 270255 | 238083 | 231203 | 220574 | 200997 | 182633 | 85078 | 49392 | 10748 |
Multi-Core Primary and Standby 56G | 257552 | 259733 | 253109 | 248428 | 232922 | 206252 | 184632 | 86419 | 50178 | 12119 |
Multi-Core Primary and Standby 64G | 283679 | 277754 | 268434 | 248428 | 238089 | 214847 | 187536 | 83336 | 49289 | 13324 |
Get Performance
Bytes | 16 Bytes | 32 Bytes | 64 Bytes | 128 Bytes | 256 Bytes | 512 Bytes | 1024 Bytes | 4096 Bytes | 8192 Bytes | 32768 Bytes |
---|---|---|---|---|---|---|---|---|---|---|
Multi-Core Primary and Standby 4G | 363633 | 363206 | 339713 | 333277 | 333464 | 292565 | 205707 | 121139 | 54137 | 13319 |
Multi-Core Primary and Standby 6G | 341868 | 316880 | 347908 | 338905 | 322570 | 261650 | 208862 | 99598 | 57887 | 13331 |
Multi-Core Primary and Standby 8G | 331071 | 347814 | 338894 | 338894 | 331071 | 296276 | 211920 | 101347 | 54872 | 13393 |
Multi-Core Primary and Standby 12G | 327847 | 281554 | 341870 | 327847 | 325228 | 290909 | 211911 | 98340 | 54911 | 13316 |
Multi-Core Primary and Standby 16G | 331071 | 333322 | 333322 | 333322 | 325228 | 302557 | 213869 | 86070 | 54890 | 13327 |
Multi-Core Primary and Standby 24G | 327847 | 338948 | 333322 | 285708 | 325228 | 304463 | 211983 | 102734 | 54435 | 13347 |
Multi-Core Primary and Standby 32G | 331071 | 346945 | 353963 | 357142 | 344825 | 315302 | 227253 | 96267 | 54994 | 12010 |
Multi-Core Primary and Standby 40G | 362800 | 381549 | 346944 | 338947 | 338947 | 289475 | 222248 | 82766 | 47709 | 12742 |
Multi-Core Primary and Standby 48G | 277777 | 333322 | 344827 | 357142 | 333322 | 289395 | 201010 | 94132 | 54535 | 12805 |
Multi-Core Primary and Standby 56G | 331071 | 333322 | 363609 | 363200 | 302557 | 304463 | 195116 | 97215 | 54440 | 11708 |
Multi-Core Primary and Standby 64G | 361111 | 363609 | 362800 | 363609 | 347814 | 302557 | 218655 | 99849 | 49186 | 12297 |
Proxy Performance Test
Test Object
Model: Distributed Version
Database Type: Performance Enhanced Version
Single Shard Capacity: 6GB
Proxy: NVMe (or SSD) Distributed Version Redis Proxy
Number of Shards: 2 shards, 4 shards, 8 shards, 16 shards
Redis-benchmark
Server Model: Kuaijie O Type
System Version: CentOS 7.6
Machine Configuration: 32C/32G
Test Context
Test Command
redis-benchmark -h IP -t set,get -d 256 --threads 32 -c 960 -n 10000000 -r 10000
Test Results
Set Performance
Proxy Core Number | 2 | 4 | 8 | 16 | 32 | 64 |
---|---|---|---|---|---|---|
2 shards | 217244 | 386701 | 415299 | 469241 | 520450 | 521247 |
4 shards | 236501 | 369329 | 501356 | 504464 | 518645 | 537521 |
8 shards | 235122 | 379518 | 514412 | 527475 | 546298 | 539025 |
16 shards | 224202 | 385131 | 561829 | 577600 | 675904 | 712301 |
Get Performance
Proxy Core Number | 2 | 4 | 8 | 16 | 32 | 64 |
---|---|---|---|---|---|---|
2 shards | 188469 | 311075 | 395238 | 391144 | 492053 | 587406 |
4 shards | 189257 | 329973 | 504884 | 491908 | 491859 | 553863 |
8 shards | 189082 | 326085 | 566544 | 588657 | 602831 | 605202 |
16 shards | 178275 | 329793 | 569800 | 587302 | 756636 | 797257 |