NGINX 캐시가 오작동하여 시스템이 열광하게 됩니다.

NGINX 캐시가 오작동하여 시스템이 열광하게 됩니다.

우리는 서버의 PHP 파일에 대한 요청을 캐시하기 위해 CentOS/nginx fastcgi_cache를 사용하고 있습니다. 이 파일은 매우 자주 액세스되고 1s 캐시가 있으므로 매우 자주 업데이트됩니다.

일반적으로 액세스 로그를 살펴보면 다음과 같은 내용을 볼 수 있습니다.

00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "HIT"
00:01 REQUEST 3 "HIT"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "HIT"
00:02 REQUEST 6 "HIT"

문제가 발생하면 nginx에 문제가 발생하고 갑자기 로그가 다음과 같이 보이기 시작합니다(동일한 초라도 모두 만료됨).

00:01 REQUEST 1 "EXPIRE"
00:01 REQUEST 2 "EXPIRE"
00:01 REQUEST 3 "EXPIRE"
00:02 REQUEST 4 "EXPIRE"
00:02 REQUEST 5 "EXPIRE"
00:02 REQUEST 6 "EXPIRE"

중요 사항: 이 일이 발생하기 직전에 php-fpm은 다음을 보고합니다: 경고: [pool www] 서버가 max_children 설정(35)에 도달했습니다. 이를 높이는 것을 고려하십시오. 주의 사항: 종료 중 ... 주의 사항: 종료합니다, 안녕! 알림: fpm이 실행 중입니다. pid 27544 알림: 연결을 처리할 준비가 되었습니다.

(이것은 정상적인 동작이 아니며 매우 드뭅니다.)

캐시에 영향을 미치는지 확인하기 위해 작업 중에 php-fpm을 다시 시작해 보았습니다. 또한 자주 호출되는 특정 파일에 대해 스트레스 테스트를 시도했지만 시스템을 이상하게 만들 수는 없습니다. 또한 캐시 키가 올바르게 구성되었는지 확인했습니다.

여기에 어떤 다른 가능성이 있는지 아는 사람이 있나요? 제가 조사할 수 있는 다른 것이 있나요?

PS 이 문제가 발생하면 문제를 해결하기 위해 파일 요청을 중지하고 서비스를 다시 시작하면 다시 작동합니다.

도와줘서 고마워요, 알론

관련 정보