![502 Bad Gateway가 발생하면 php-fpm은 CPU를 100% 사용합니다.](https://rvso.com/image/668053/502%20Bad%20Gateway%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EB%A9%B4%20php-fpm%EC%9D%80%20CPU%EB%A5%BC%20100%25%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EB%8B%A4..png)
좋아, 어젯밤 새벽 2시쯤에 내 서버 중 하나에서 CPU 사용량이 100%까지 올라갔습니다. 오늘 아침에 체크인했을 때 5개의 php-fpm 프로세스가 함께 약 100% CPU를 차지하는 것을 보았습니다. 서버를 재부팅했는데 서버가 다시 돌아올 때마다 php-fpm 프로세스가 다시 시작되어 CPU를 100% 차지합니다.
Ubuntu 14.04.3 LTS(GNU/Linux 3.13.0-32-generic x86_64) 서버입니다. 모든 소프트웨어를 업데이트했지만 이 문제의 원인에 대한 정보를 얻을 수 없습니다.
분명히 문제로 인해 서버에서 호스팅되는 웹 사이트가 오프라인 상태가 되어 항상 502 잘못된 게이트웨이 또는 504 게이트웨이 시간 초과 오류가 표시됩니다.
누군가가 이 문제를 해결하는 데 도움을 줄 수 있기를 바랍니다.
이러한 문제가 전혀 없는 정확히 동일한 설정을 갖춘 3개의 다른 서버가 있습니다.
편집 1: NewRelic을 보면 문제가 시작된 것과 거의 동시에 네트워크 탭의 "초당 패킷 수"가 크게 증가한 것으로 나타났습니다. 이는 문제와 관련이 있는 것 같습니다...
답변1
PHP-FPM에서도 비슷한 문제가 있었는데, 트래픽이 적은 야간에도 CPU를 100% 잡아먹곤 했습니다.
PHP-FPM 구성 파일을 비트 최적화해야 합니다. 이 항목이 있는지 확인하십시오.
pm = 온디맨드 pm.max_children = 2 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
ondemand가 아닌 경우 ondemand로 변경합니다. 그렇지 않으면 PHP-FPM이 많은 CPU 리소스를 사용하려고 시도합니다. ondemand를 사용하면 필요할 때 더 많은 프로세스가 시작됩니다.
PHP-FPM의 구성 파일은 다음 위치에 있습니다.
/etc/php5/fpm/php-fpm.conf
pool.d/www.conf 에 구성된 풀도 있습니다.
두 파일 모두 항목을 확인하고 그에 따라 위 설정을 최적화한 후 PHP-FPM을 다시 시작하세요.