php는 유닉스 방식인 다중 프로세스 방식인데 윈도우는 다중 쓰레드 방식이라 안정성이 떨어짐
그래서 대안으로 Thread Safe 버전을 내놨는데 성능이 떨어짐
그래서 안정성 대신 성능을 위한 Non Thread Safe 버전을 내놓음
- 웹서버와 권장 버전
IIS, ISAPI: Thread Safe version
IIS, CGI or Fast CGI: Non Thread Safe version
Apache MPM worker: Thread Safe version
Apache MPM prefork: Non Thread Safe version
Nginx Fast CGI : Non Thread Safe version
//-----------------------------------------------------------------------------
설치된 php가 Non Thread Safe 버전인지 알아보는 방법(윈도우 명령어)
> php -info | findstr /i "thread"
//=========================================
// 참고
Apache MPM (다중처리 모듈 , Multi-Processing Module)
https://httpd.apache.org/docs/2.4/ko/mpm.html
http://faq.hostway.co.kr/Linux_WEB/7043
https://zetawiki.com/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%84%9C%EB%B2%84_MPM,_prefork,_worker_%EB%B0%A9%EC%8B%9D
* prefork 방식
프로세스당 스레드(연결) 1개
자식 프로세스는 최대 1024개까지 가능
스레드간 메모리 공유 안함
→ 독립적이라 안정적
→ 메모리를 많이 사용
안정성과 오래된 소프트웨어와의 호환성이 필요한 사이트
PHP Non Thread Safe version
//===========
* worker 방식
프로세스 당 스레드(연결) 여러 개
메모리 공유 사용
→ 메모리 사용량 적음
→ 통신량이 많은 서버에 적절
→ 리소스 경합 주의 필요
높은 확장가능성(scalability)이 필요한 사이트
PHP Thread Safe version
//==================================
PHP: FPM(FastCGI Process Manager)
'Code > PHP' 카테고리의 다른 글
라라벨 에러 해결 방법, preg_match() 에러 (0) | 2019.02.23 |
---|---|
[php] xDebug 사용법 (0) | 2019.02.16 |
[html, php] 이스케이프( Escape) (0) | 2019.02.12 |
PHP 버전 역사 (0) | 2019.02.11 |
[php] PEAR , PECL , composer (0) | 2019.01.31 |