我在Redis遇到问题。
我有3台服务器。 每个服务器有10个Redise在不同的端口上工作。 另外,每个服务器都有一个Sentinel实例。
另外,还有5个应用程序服务器。 每个服务器都有HaProxy,它从池中检查哪个Redis服务器是主服务器,并将stream量redirect到他。
所以,无论哪个服务器是Redis主机,应用程序总是使用127.0.0.1:port。
我有误报的麻烦。 这是我的日志:
[37338] 29 Apr 07:51:36.813 # Connection with slave ip1:6388 lost. [37338] 29 Apr 07:51:37.399 # Connection with slave ip3:6388 lost. [7244] 29 Apr 07:51:38.809 * DB saved on disk [7244] 29 Apr 07:51:38.814 * RDB: 35 MB of memory used by copy-on-write [37338] 29 Apr 07:51:38.918 * Background saving terminated with success [37338] 29 Apr 07:51:47.451 * SLAVE OF 192.168.234.ip1:6388 enabled (user request) [37338] 29 Apr 07:51:47.457 # CONFIG REWRITE executed with success. [37338] 29 Apr 07:51:47.541 * Connecting to MASTER ip1:6388 [37338] 29 Apr 07:51:47.541 * MASTER <-> SLAVE sync started [37338] 29 Apr 07:51:47.541 * Non blocking connect for SYNC fired the event. [37338] 29 Apr 07:51:47.541 * Master replied to PING, replication can continue... [37338] 29 Apr 07:51:47.541 * Partial resynchronization not possible (no cached master) [37338] 29 Apr 07:51:47.542 * Full resync from master: 0be90102031e58ef358f0ea48e58eeae869902d1:157705847 [37338] 29 Apr 07:51:51.730 * MASTER <-> SLAVE sync: receiving 85082188 bytes from master [37338] 29 Apr 07:51:52.588 * MASTER <-> SLAVE sync: Flushing old data [37338] 29 Apr 07:51:53.011 * MASTER <-> SLAVE sync: Loading DB in memory [37338] 29 Apr 07:51:54.401 * MASTER <-> SLAVE sync: Finished with success [37338] 29 Apr 07:52:39.072 * 10000 changes in 60 seconds. Saving... [37338] 29 Apr 07:52:39.083 * Background saving started by pid 27656
但什么也没有发生,会导致这一点。
当Sentinel超时时间很短(100ms)时,我已经有问题了,所以我改成了5s。 直到今天还没有超时。
另外,5台服务器是多余的。 当我把他们中的一半,申请开始放缓。 没有CPU,Mem,我可以看到磁盘问题。
昨天我有一个问题,就是当一半的应用服务器closures时,应用服务器掉线了。 服务器将开始闲置几秒钟,然后再次正常工作。 Nginx(前端服务器)使用proxypass来平衡stream量到应用服务器。 我怀疑端口范围(netstat计数超过90k连接)。 而且,在timewait中有127.0.0.1:someport到127.0.0.1:redisport的超过30k个连接。 应用程序 – > Haproxy Redis。
net.ipv4.ip_local_port_range = 10000 65535
另外,我打开了:
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1
之后,没有更多的交通损失,但应用程序仍然太慢,没有明显的原因(cpu,mem,hdd …一切正常)。
我可以检查更多什么?