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부 배포, 테스팅, 튜닝