묻고답하기
PHP-FPM이 일정 주기로 동작을 안 합니다
2014.12.04 09:52
PHP-FPM 사용하는게 속도가 괜찮다고 하고, MPM event를 쓰기 위해
mod proxy fcgi를 사용해서 돌렸습니다.
근데 잘 돌아가다가 자꾸 일정 주기로 fpm이 응답을 안 해서 타임아웃 될 때까지 멈춰있습니다.
램이 1기가인데 부족해서 그런 걸까요?
서비스 재시작하면 다시 잘 동작합니다.
Apache 2.4 + PHP 5.6 + PHP-FPM + MPM event 이런 구조입니다.
서버 세팅 조언 좀 부탁드립니다.
- [2015/06/14] 묻고답하기 PHP 5.6.* 버전 사용하시는 분 오류 없으신가요? *4
- [2015/06/12] 묻고답하기 XE 1.8.3 회원가입시 사용자 정의 항목 비활성 현상 *2
- [2015/05/20] 묻고답하기 xe 로그인 문의
- [2015/05/17] 묻고답하기 지금 현재 1.8.1버전으로 설치 성공하신분? *3
- [2015/05/07] 묻고답하기 [XE 1.8.1] 파일업로드 문제 *1
댓글 12
-
휘즈
2014.12.04 10:56
-
Lansi
2014.12.04 13:47
VPS 사용하는데... free + buffers + cached 합치면 500메가가 넘는데 모자란 건가요?
-
휘즈
2014.12.04 23:53
pm.max_children 값을 조정해보세요
vps의 경우 대부분 스왑파일이 안만들어져 있을텐데 스왑파일을 만들면 대부분 해결됩니다.
-
Lansi
2014.12.05 09:40
free -m 했을 때 Swap이 1021로 뜨는데 스왑파일 만들어줘야 하나요?
-
hhgyu
2014.12.05 13:48
http://serverfault.com/questions/575457/constantly-have-to-reload-php-fpm
http://myjeeva.com/php-fpm-configuration-101.html
이런것들이 있네요...
-
Lansi
2014.12.06 13:06
이런 설정들이 있었군요... 감사합니다
-
휘즈
2014.12.06 06:10
스왑파일이 이미 있다면 만들 필요는 없습니다.
윗분 말대로
emergency_restart_threshold,
emergency_restart_interval,
process_control_timeout
를 설정해 보세요,
-
휘즈
2014.12.06 06:36
확실한 것이 아니라서 언급하기 어려운 문제인데
xe 코어 또는 모듈에서 php 버전에 따라 잘못된 php문법으로 인해 php-fpm 프로세서가 죽는 것 같습니다.
php 5.4, xe 1.7.3.8 에서 그런 문제가 있었는데.
정확한 원인파악이 안되서, 트래픽 폭주하면 디비도 죽는 문제가 있어서 지금은 리얼서버로 옯겼습니다.
php 5.6이니 문제가 발생할 여지가 더 있고 위설정으로 해결이 되었으면 좋겠네요
-
Lansi
2014.12.06 13:08
위에서 말씀해주신대로 설정했습니다. 자동으로 재시작해주니 이 기능이 제대로 동작한다면 걱정할 필요 없을 거 같네요.
php 문법만으로 프로세스가 아에 죽어버린다는 게 조금 이상하네요. 아파치에 php 모듈을 올린채로 썼을 때는 문제가 없었는데 말이죠.
이제 설정 해놨으니 경과를 봐야죠. 답변 해주셔서 감사합니다.
-
휘즈
2014.12.07 02:50
기억이 가물가물한데
프로세서 자체가 죽는 것은 아니고 생성된children 프로세스가 죽는 것 같습니다.
children프로세스 계속 생성되고 죽은 프로세스는 memory leak을 발생하는 거죠
-
XESniper
2014.12.06 16:00
emergency_restart_threshold,
emergency_restart_interval,
process_control_timeout
저 세가지 설정이 가장 중요하고요, 접속자가 많아질 경우 "pm.max_children" 부분도 조정을 해주셔야 합니다.
가장 좋은건 1시간, 2시간 정도를 주기로 PHP-FPM 데몬을 "graceful" 해주거나, "restart" 해주는게 가장 좋습니다.
-
Lansi
2014.12.10 10:24
그 설정을 해줬는데도 죽어서
cron으로 1시간마다 재시작하도록 했습니다
램 1기가 부족합니다.
혹시 가상서버 사용하시면 스왑파일이 있나 확인해 보시고 없으면 만드세요