목차
이해에 필요한 배경지식
Thread Safe / None Thread Safe 차이
이해에 필요한 배경지식
[용어]
Thread (스레드) : 작업 테이블
Multi thread (멀티 스레드) : 여러 작업 테이블
Process (프로세스) : 일 처리
Multi Process (멀티 프로세스) : 동시에 여러 일처리
CGI (시지아이) : 웹서버와 사용자 프로그램간 동작 제어
FastCGI (패스트 시지아이) - CGI 성능보다 약간 좋음
ISAPI (아이사피) : CGI 성능보다 많이 좋음
IIS (아아아이에스) : 윈도우 웹서버용 인터넷 서비스 모음
[리눅스]
PHP는 기본적으로 Multi-Process 방식만 지원
PHP 관련 프로그램도 Multi-Process 방식 사용
리눅스/유닉스 계열은 Multi-Process 방식 사용
∴ 리눅스, PHP, 관련 프로그램 궁합이 잘 맞아 문제 발생 X
[윈도우]
PHP는 기본적으로 Multi-Process 방식만 지원
PHP 관련 프로그램도 Multi-Process 방식 사용
윈도우 계열인 ISAPI는 Multi-Thread 방식 사용
∴ 서로 궁합이 안 맞아 서버 다운되는 문제 발생 O
(∵ 작업테이블 여럿 펼쳐놓고 일처리 동시에 하다 보니 서버가 다운)
PS. 위 문제를 해결 위한 시도들
ISAPI 대신 CGI로 대체하니, 성능 심하게 저하되는 문제 발생 O
CGI 상태에서 성능 끌어올리기 위해 NTS (= None Thread Safe 버전 = 단일 Thread 버전) PHP 개발.
Thread Safe / None Thread Safe 차이
[TS (Thread Safe) 버전 PHP]
Multi -Thread 버전 (= 즉, 작업테이블 여럿 사용 가능)
처음 개발된 윈도우용 버전 PHP
서버 성능 좋을 때 사용
Windows + IIS(ISAPI )
Windows + Apache
[NTS (None Thread Safe) 버전 PHP]
Single -Thread 버전 (즉, 작업테이블 하나만 사용 가능)
윈도우와 궁합 맞추기 위해 개발된 PHP 버전
서버 성능이 별로 안 좋을 때 서버 다운 방지 위해 사용
Windows + IIS(CGI / FastCGI )
PS1. TS, NTS 모두 Windowns 버전 PHP에 사용되는 개념임.
PS2. PHP 다운 페이지 좌측에 영어로 친절히 잘 설명되어 있음.
주소 복사
랜덤 이동