2014-06-14 3 views
0

어제 Redis 2.4/CentOS 6.2 캐시 서버에서 이상한 성능 저하가 발생했습니다. 그들은 4 분마다 순환합니다. 여기 Redis 2.4/CentOS 6.2 네트워크 처리량 4 분마다 감소 ... Redis ... 또는 클라이언트 관련?

마스터 서버의 새로운 유물에서 스크린 샷입니다 : https://www.evernote.com/shard/s368/sh/28312f97-60a9-45ab-a27e-b31abb5c7cce/8fb69edd1206c228fcc444330f1909ec

을 그리고 여기에 같은 기간 동안 슬레이브의 중 하나입니다 : https://www.evernote.com/shard/s368/sh/802b01bc-294d-46a5-adaa-f64e2e8c8bd2/6cbe244d4570fae63ee412cd1de5a841

우리의 환경에 대한 일부 정보 : - 캐시 : 4 리눅스 8 CPU, 30GB RAM 및 600Mbps 내부 네트워크 대역이있는 클라우드 서버 - 웹 : 4 개의 CPU 및 200Mbps 내부 네트워크 대역을 갖춘 30 개의 Windows 클라우드 서버

Th 전자 웹 서버는 매우 바쁜 것처럼 보이지 않지만 순간적으로 잠잠 해지면 시간이 초과됩니다. 웹 클라이언트 응용 프로그램에 대한 정보가 더 많으므로 클라이언트 문제 일 수 있습니다.

데이터 캐시 및 AngiesList 용 Redis BookSleeve 클라이언트 1.1.0.4를 사용하는 Microsoft ASP.Net MVC 3 웹 응용 프로그램 ???? (이 버전의 BookSleeve와 호환되는 버전)을 세션 상태로 사용합니다.

우리는 처음에는 레디 스와의 연결량에 약간의 문제가있었습니다. 내가 알기로, Redis 2.4에는 한정된 양의 연결 클라이언트가 고정되어 있습니다.

그래서 우리는 세션과 데이터 캐시를 별도의 Redis 인스턴스에서 분리했습니다. 안타깝게도 AngiesList는 둘 이상의 연결을 지원하지 않으므로 마스터 서버에만 연결됩니다. BookSleeve 클라이언트 연결은 .NET에서 System.Random을 사용하여 연결됩니다.

readonly Random _randomReadConnection = new Random((int)DateTime.Now.Ticks); 

데이터 캐시의 클라이언트 연결 수는 모든 서버에서 약 200입니다. 세션 캐시에는 최대 4100 개의 연결이있었습니다.

우리는 Redis 로그를 면밀히 검토하고 iftop 및 top을 모니터링하고 실행했지만 유용한 것은 찾을 수 없습니다.

그럼 .... 왜 이러한 현상이 발생합니까?

저는 .Net 개발자이고 Linux 전문가가 아닙니다. 우리는 Redis/linux 분야에 전문가가 없기 때문에 여기에있는 누군가가 검색 범위를 좁히는 데 도움이되기를 바랍니다.

백업 계획의 일부로 클라이언트를 호환 가능한 세션 상태 패키지와 함께 ServiceStack Redis v3으로 업데이트하고 Redis 2.8을 사용하여 서버를 구성했습니다.

감사합니다.

답변

1

부하가 높을 때 나타나는 문제입니다. 서버를 Redis 2.8로 업그레이드 할 때 문제가 사라졌습니다.

Service Stack V3 (link)로 업그레이드 할 때도 Redis 2.4에서 메모리 문제가 발생했습니다.

AOF 및 RDB 스냅 샷을 해제하면 지속 가능한 상황 (link)으로 성능이 향상됩니다.