26.10.2015 Views

Modern PHP - 맛보기 PDF

조시 록하트 저 | 정병렬 역 | 한빛미디어 | 2015년 10월 | 22,000원

조시 록하트 저 | 정병렬 역 | 한빛미디어 | 2015년 10월 | 22,000원

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

지정했던 $PREFIX 디렉터리에 php.ini 파일이 있을 것이다. 나는 여러분이 <strong>PHP</strong>-FPM을 통<br />

해 <strong>PHP</strong>를 실행한다고 간주하지만, 앞으로 나올 최적화 방법들은 모든 php.ini 파일에 적용할<br />

수 있다.<br />

TIP<br />

TIP<br />

여러분의 php.ini 파일이 모범 보안 사례에 적합한지 알아보려면, 크리스 코넛이 제작한 <strong>PHP</strong> 이니스캔 Iniscan<br />

(https://github.com/psecio/iniscan)으로 php.ini 파일을 검사해보자.<br />

php.ini 파일은 INI 형식으로 작성한다. INI 파일 형식에 대해서는 위키백과(https://ko.wikipedia.org/<br />

wiki/INI_파일)에서 알아볼 수 있다.<br />

8.2 메모리<br />

<strong>PHP</strong>를 실행할 때 제일 먼저 고려해야 할 사항은 각 <strong>PHP</strong> 프로세스가 소비하는 메모리양이다.<br />

php.ini 파일에 있는 memory_limit 설정은 하나의 <strong>PHP</strong> 프로세스가 사용할 수 있는 최대 시<br />

스템 메모리를 결정한다.<br />

이 설정의 기본값은 128M인데, 이 정도면 중소 규모 <strong>PHP</strong> 애플리케이션 대부분에 적당하다.<br />

하지만 초소형 <strong>PHP</strong> 애플리케이션을 실행할 때는 이 값을 64M 정도로 낮춰 시스템 자원을 절<br />

약할 수 있으며, 메모리 집약적인 <strong>PHP</strong> 애플리케이션(예: 드루팔 웹 사이트)을 실행할 때는<br />

512M 정도로 올려 성능을 향상할 수도 있다. 구체적인 설정값은 시스템의 가용 메모리에 의해<br />

좌우된다. <strong>PHP</strong>에 할당된 메모리양을 알아내는 방법은 과학적인 이론이라기보다는 예술적인<br />

기교에 더 가깝다. <strong>PHP</strong>에 허용할 수 있는 한계 메모리와 최대 <strong>PHP</strong>-FPM 프로세스 수를 결<br />

정하려면 다음과 같은 질문에 답할 수 있어야 한다.<br />

● <strong>PHP</strong>에 할당할 수 있는 총 메모리는 얼마인가<br />

우선 시스템 메모리를 얼마만큼 <strong>PHP</strong>에 할당할지 결정한다. 예를 들어 내가 사용하는 리노드 가상 컴퓨터의<br />

전체 메모리는 2GB다. 하지만 다른 프로세스(예: 엔진엑스, MySQL, 멤캐시)가 동일한 시스템에서 실행 중<br />

이며 각자 메모리를 소비하고 있어서, <strong>PHP</strong>용으로 안전하게 확보할 수 있는 메모리는 512MB 정도다.<br />

● 단일 <strong>PHP</strong> 프로세스가 소비하는 평균 메모리는 얼마인가<br />

다음으로 하나의 <strong>PHP</strong> 프로세스가 소비하는 평균 메모리를 결정한다. 이를 위해서는 프로세스의 메모리 사용<br />

량을 지켜봐야 한다. 명령행에서는 top 명령을 실행하면 현재 실행 중인 프로세스에 대한 실시간 통계를 볼<br />

수 있으며, <strong>PHP</strong> 스크립트 맨 마지막에 memory_get_peak_usage() 함수를 호출하면 해당 스크립트가<br />

소비하는 최대 메모리를 출력할 수도 있다. 어느 쪽이든, 같은 <strong>PHP</strong> 스크립트를 (캐시가 준비될 때까지) 여러<br />

68 3부 배포, 테스팅, 튜닝

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!