2016-04-12 12 views
9

Xem hoạt động lạ của cụm redis, hoạt động hoàn toàn tốt trên tải lớn và bắt đầu chạy với tốc độ thời gian chờ 50% và thời gian phản hồi không ổn định khi tải thấp.Hiệu suất cụm Redis - tốc độ thời gian chờ cao trên tải thấp

Chúng tôi có cùng kích thước mỗi ngày trong các khoảng thời gian tải thấp.

Bất kỳ ý tưởng nào có thể gây ra một mẫu kỳ lạ như vậy? Có lẽ một số công việc bảo trì mà RedisCluster này bắt đầu thực hiện khi thời gian tải thấp? Giống như khe cân bằng lại. Vui lòng đề xuất bất kỳ cài đặt hoặc khía cạnh nào để kiểm tra.

Phiên bản: Redis 2.0.7, Jedis 2.8.1

Cấu hình: 3 nút vật lý với 9 quy trình chính và 18 nô lệ.

JedisCluster Timeout = 5ms.

Tải là 100% viết bằng setex.

JedisCluster response time JedisCluster timeout rate

đồ thị này là dành cho lần JedisCluster Đáp lại, không lần RedisCluster thực tế. Dòng "Đặt" ở đây là các bộ thành công thực sự, không phải là tổng số.

+0

Bạn có tìm kiếm dns khi kết nối với RedisCluster không? – Slach

+0

@ Không, chúng tôi kết nối bằng ip và sử dụng hồ bơi kết nối qua Jedis, vì vậy kết nối lại là tình huống hiếm gặp –

Trả lời

5

Cuối cùng tôi thấy rằng nó trông giống như vấn đề về mạng.

redis08(10.201.12.214) ~ $ redis-benchmark -h 10.201.12.215 -p 9006 
====== PING_INLINE ====== 
    100000 requests completed in 91.42 seconds 
    50 parallel clients 
    3 bytes payload 
    keep alive: 1 

0.00% <= 11 milliseconds 

redis09(10.201.12.215) ~ $ redis-benchmark -h 10.201.12.215 -p 9006 
====== PING_INLINE ====== 
    100000 requests completed in 1.41 seconds 
    50 parallel clients 
    3 bytes payload 
    keep alive: 1 

99.46% <= 1 milliseconds 

redis08 ~ $ ping lga-redis09 
PING redis09 (10.201.12.215) 56(84) bytes of data. 
64 bytes from redis09 (10.201.12.215): icmp_seq=1 ttl=64 time=10.7 ms 

Nhìn vào bộ sưu tập "if_octets" của chúng tôi có hoạt động mạng rất lớn trên giao diện mạng vào thời điểm viết hoạt động thấp. Tải ban đêm là 10x so với tải ban ngày.

Và nó được gây ra bởi các nút redis bắt đầu tích cực trao đổi thông tin về thời gian tải thấp này. Kết nối đầu ra Iptraf hàng đầu: Iptraf output, most packets and traffic are between redis nodes/processes itself Khi ở đầu vào ban ngày trong báo cáo iptraf này hoàn toàn thuộc về khách hàng thực sự của redis có tải trọng tốt.

Cuối cùng thấy rằng chúng tôi có vấn đề với nhân rộng. Đôi khi bộ đệm không đủ và nô lệ bắt đầu đồng bộ hóa đầy đủ. Có vẻ như lần tải ban đêm này - các nỗ lực đồng bộ hóa đầy đủ + giá trị thời gian chờ thay thế thấp - kết quả là nhân rộng không bao giờ xảy ra. Tại sao sự sao chép này ảnh hưởng đến tải ban đêm thấp đến mức đáng kể và không ảnh hưởng đến thời gian ban ngày - tôi không biết, không thấy các tùy chọn làm cho redis thực hiện thường xuyên hơn vào những đêm hay thứ gì đó tương tự. Nếu điều này thú vị, chúng tôi đã sửa lỗi sao chép không ngừng bằng cách tăng các cài đặt rõ ràng:

repl-backlog-size 
repl-timeout 
Các vấn đề liên quan