Redis Cluster 5.0.9ビルド、ストレステスト、毎日のメンテナンス
Redisは多くのCPUとメモリを占有し、単一のプロセスであり、単一のカーネルを実行します。テストでは、物理マシンと仮想マシンがクラスター状態で同じ構成にある場合、パフォーマンスが確認されます。物理マシンの容量は仮想マシンの容量よりも大幅に高くなります。2倍のギャップがあるため、高性能のシナリオでは物理マシンを使用することをお勧めします。
インストール
ダウンロード:wget https://download.redis.io/releases/redis-5.0.9.tar.gz
ここで言うことはあまりありません:
解凍してインストールします:tar -zxvf redis-5.0.9.tar.gz、次にディレクトリにcdし、makeの下でsrcディレクトリの下で使用できます
TCPリッスンキューのサイズ
つまり、TCPリッスンのバックログサイズです。「/ proc / sys / net / core / somaxconn」のデフォルト値は通常128などの小さい値であり、32767などの大きい値に変更する必要があります。次のコマンドを使用して、すぐに有効にすることもできます:sysctl -w net.core.somaxconn = 32767。
永続的に有効にするには、ファイル/etc/sysctl.confに行を追加する必要があります:net.core.somaxconn = 32767次に、コマンド「sysctl-p」を実行して有効にします。
Redis構成アイテムtcp- backlogの値は、somaxconnのサイズを超えることはできません。
クラスター構築
クラスター構成
#创建目录
mkdir redis_node7001 redis_node7002 redis_node7003 redis_node7004 redis_node7005 redis_node7006
cd redis_node7001
vim redis.conf
# 绑定的IP
bind 10.10.3.208
# 启动端口
port 7001
# 后台启动
daemonize yes
# pid文件位置
pidfile /var/run/redis_7001.pid
#loglevel notice
# 日志文件
logfile "/root/redis_cluster_5.0/redis_node7001/redis_logfile_7001.log"
# 数据目录
dir /root/redis_cluster_5.0/redis_node7001/
# 开启redis-cluster集群
cluster-enabled yes
# 每个实例还包含存储此节点配置的文件的路径,默认情况下为nodes.conf,自动创建
cluster-config-file nodes-7001.conf
# 超时
cluster-node-timeout 15000
# 集群密码
requirepass 123456
# 开启aof
appendonly yes
# 集群同步
appendfsync no
# 保护模式,就是不能拿tcp来连接
protected-mode no
# 系统消息队列数量
tcp-backlog 32767
#保存退出,执行启动
./src/redis-server redis.conf
次に、構成ファイルを各フォルダーにコピーします
sed -i's / 7001/7002 / g'redis.conf#異なるポート番号を変更する
開始を実行します
# netstat -lntup | grep redis
tcp 0 0 10.10.3.208:7004 0.0.0.0:* LISTEN 10118/./src/redis-s
tcp 0 0 10.10.3.208:7005 0.0.0.0:* LISTEN 10140/./src/redis-s
tcp 0 0 10.10.3.208:7006 0.0.0.0:* LISTEN 10166/./src/redis-s
tcp 0 0 10.10.3.208:17001 0.0.0.0:* LISTEN 9797/./src/redis-se
tcp 0 0 10.10.3.208:17002 0.0.0.0:* LISTEN 9982/./src/redis-se
tcp 0 0 10.10.3.208:17003 0.0.0.0:* LISTEN 10052/./src/redis-s
tcp 0 0 10.10.3.208:17004 0.0.0.0:* LISTEN 10118/./src/redis-s
tcp 0 0 10.10.3.208:17005 0.0.0.0:* LISTEN 10140/./src/redis-s
tcp 0 0 10.10.3.208:17006 0.0.0.0:* LISTEN 10166/./src/redis-s
tcp 0 0 10.10.3.208:7001 0.0.0.0:* LISTEN 9797/./src/redis-se
tcp 0 0 10.10.3.208:7002 0.0.0.0:* LISTEN 9982/./src/redis-se
tcp 0 0 10.10.3.208:7003 0.0.0.0:* LISTEN 10052/./src/redis-s
クラスターを作成する
redis-cli --cluster create 10.10.3.208:7001 10.10.3.208:7002 10.10.3.208:7003 10.10.3.208:7004 10.10.3.208:7005 10.10.3.208:7006 --cluster-replicas 1 -a 123456
# create 创建一个redis集群。
# --cluster-replicas 1 表示集群创建几个副本,后面1表示 1个副本
# -a 123456 节点密码
クラスタステータスを確認する
# ./src/redis-cli --cluster check 10.10.3.208:7001 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.10.3.208:7001 (4363d70a...) -> 0 keys | 5461 slots | 1 slaves.
10.10.3.208:7003 (da6b5737...) -> 0 keys | 5461 slots | 1 slaves.
10.10.3.208:7002 (c290a233...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 10.10.3.208:7001)
M: 4363d70af3240d07445dabf8b61855fa412b2b06 10.10.3.208:7001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: da6b57377b361ae81780da7ca393307baaedbaa4 10.10.3.208:7003
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 6643131bf77b3e00d63c64685e40f35ceab14ec6 10.10.3.208:7004
slots: (0 slots) slave
replicates da6b57377b361ae81780da7ca393307baaedbaa4
S: 66c91cd804336dc5e2d848721baf7aa0229fe723 10.10.3.208:7005
slots: (0 slots) slave
replicates 4363d70af3240d07445dabf8b61855fa412b2b06
S: 64ee4ea79871995cce257cd302a24d7f1f5c40b8 10.10.3.208:7006
slots: (0 slots) slave
replicates c290a233c9edf2bf8a74392d50578572d1d88403
M: c290a233c9edf2bf8a74392d50578572d1d88403 10.10.3.208:7002
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
クラスター圧力テスト
./redisbench -cluster=true -a 10.10.3.208:7001,10.10.3.208:7002,10.10.3.208:7003 -c 500 -n 20000 -d 10 -p 123456
[root@localhost redis_cluster_5.0]# ./redisbench -cluster=true -a 10.10.3.208:7001,10.10.3.208:7002,10.10.3.208:7003,10.10.3.208:7004,10.1
0.3.208:7005,10.10.3.208:7006 -c 500 -n 50000 -d 10 -mo 3 -p 123456
2021/01/29 14:29:27 Go...
2021/01/29 14:29:27 # BENCHMARK CLUSTER (10.10.3.208:7001,10.10.3.208:7002,10.10.3.208:7003,10.10.3.208:7004,10.10.3.208:7005,10.10.3.208:7006, db:0)
2021/01/29 14:29:27 * Clients Number: 500, Testing Times: 50000, Data Size(B): 10
2021/01/29 14:29:27 * Total Times: 25000000, Total Size(B): 250000000
2021/01/29 14:30:56 # BENCHMARK DONE
2021/01/29 14:30:56 * TIMES: 25000000, DUR(s): 88.475, TPS(Hz): 282565
TPS(Hz): 282565 执行的命令数(秒)
圧力測定ツール:
ここからダウンロードして、自分でコンパイルできますhttps://github.com/panjiang/redisbench必要に応じて、メッセージを残すことができます。