我们的服务器在黑色星期五的这几天偶尔会出现负载突然变高(高达20+)的情况,现在已知redis在dump时会引起io wait,redis以及memcached连接数突增,之后memcached会出现超时,再接着数据库就挂掉,负载又上了新的台阶,感觉和redis有关系,有人知道redis的dump为什么有这么大的影响吗?
黄舟2017-04-22 08:58:19
데이터를 덤프할 때 많은 디스크 IO 작업과 IO 사용량으로 인해 io_wait가 상대적으로 높아져 로드가 더 높아질 수 있습니다. 서버 부하가 높을 때 이때 CPU가 사용 중이면 안 될 것 같은데요, 그렇죠? CPU는 유휴 상태이고 IO는 바쁜 경우 Redis의 덤프 작업으로 인한 대량의 IO가 원인일 수 있습니다. Redis의 덤프 관련 구성을 최적화하고 덤프 시간 간격을 줄여볼 수 있습니다
黄舟2017-04-22 08:58:19
서버 부하가 높다는 것은 특정 리소스를 제대로 활용하지 못한 것에 지나지 않습니다. CPU 리소스, 디스크 리소스, 네트워크 리소스.
Redis 덤프에는 IO 작업이 있어야 합니다. 디스크 읽기 및 쓰기를 살펴보십시오.
원본 포스터의 자세한 배포는 모르니까 redis local인가요? MySQL도 네이티브인가요? 나는 mysql이 일반적으로 비즈니스 머신에 배치되지 않는다고 생각합니다. IO 로드가 높으면 다른 시스템의 mysql에 영향을 주지 않아야 합니다.
접속 횟수가 갑자기 증가하고 타임아웃이 발생하는 경우 tcp의 time_wait 수를 확인할 수 있습니다. 특정 서비스에 대한 짧은 연결 호출에 가깝다고 생각합니다. 일단 오류가 발생하면 많은 수의 time_wait가 적극적으로 연결 해제되고 네트워크 리소스가 소진되어 다른 서비스를 사용할 수 없게 됩니다.