글
FASTCGI(php-cgi.exe) 대용량 파일 전송 끊김 문제 해결
저번 포스팅에서 완벽하게 해결되지 못 했던
Fastcgi로 대용량 파일 보내기 중 다운로드 속도가 0이 되면서 멈추던 문제.
사실 이 증상 하나만은 해결했지만 이것 때문에 DB를 못 불러와서 페이지 로딩이 극악으로 느린 사태가 발생했다.
php-cgi.exe가 대용량 파일 전송을 감당하지 제대로 못 하는지 다운로드를 시작하면
이런식으로 php-cgi.exe 프로세스가 왕창 생성되는데 이때문에 프로세스 수의 제한에 걸려서 더 이상 프로세스를 생산하지 못하고
페이지 로딩을 처리할 프로세스가 남아나질 않는 문제였다.
위에 보면 178개 이미, 기본 설정에서는 상상도 못 할 숫자다. 글을 쓰고 있는 지금도 260개 돌파, 343 돌파!
원인을 찾기 위해서 FastCgi 설정에서 시간 제한 시리즈를 낮추고, 대용량 파일을 다운로드하면서
마리아DB에 딸려있던 관리 프로그램으로 php-cgi의 상태를 보니 60초 쯤에서 프로세스들이 마구마구 죽어나가는 모습을 발견하는데 성공(은 저번 포스팅에서 한 일)
그리고 그로 인해 페이지 로딩이 느려터졌던 문제는 조금 위에 있는 최대 인스턴스 수를 500개로 임의로 지정해줌으로써 해결!
결국
내 기준(IIS + PHP + 마리아DB) 세팅에서 대용량 파일을 유저에게 보내기 위해서 필요한 세 가지 세팅은
1. Fastcgi 설정에서 최대 인스턴스 수(0이면 안 됨 임의로 크게 설정해야 프로세스를 많이 뽑을 수 있음), ~~ 시간 제한 삼총사
2. 요청 필터링에서 최대 콘텐츠 길이
3. 널리 알려진 PHP.ini에서 최대 시간 2종 세트와 메모리 제한(이건 업로드 관련일 듯)
그리고
이 수 많은 프로세스들을 버텨낼 쓸만한 CPU 정도...
2500k로는 버겁나... 4790k 도로 달아줘야하나...
덤으로 1~2년 동안 나를 계속 괴롭혀오던 이 HTTP 500.0 FastCGI 프로세스가 최근에 자주 실패했습니다. 에러도
위처럼 프로세스 10개(기본 설정)가 1분 동안 킬 당하면 발생하는 에러인 것 같다.
시벌!
여기까지 오는데 서버질 3년, 원인 분석 1년이 걸렸다.
아따 잘 된다.
'서버' 카테고리의 다른 글
shorte.st 씨레기 (287) | 2015.10.02 |
---|---|
XE 댓글 신고 수가 일정 이상되면 내용 숨기기 (8) | 2015.10.01 |
권한 문제로 PHP 세션이 누적되어 느려지는 현상 (1) | 2015.09.26 |
FASTCGI(php-cgi.exe) 대용량 파일 전송 끊김 문제 해결 (9) | 2015.06.01 |
회선을 증설합니다. 증설하겠습니다. 안돼잖아? (13) | 2015.05.21 |
클라우드 플레어 속도가 너무 느리잖아! (1) | 2015.03.24 |
언제나 고생많으십니다 ㅜㅜ 오픈 기다릴게요 !
고생이 많으셔요 빠른 복귀 기다리고있습니다.
그래서구나... 열심히 하는 모습 정말 멋지십니다... 기다리고 있겠습니다!
비밀댓글입니다
고생하십니다.. 먼곳에서 지긋이 응원하겠습니다!
궁금한게 있습니다만
도메인 등록 업체 뭐쓰셨어요?
dnsever여
접속이 안됩니다!
오랜만에 그분이 온것 같습니다
잘 보고 갑니다.