Windows Cache를 이용하여

    IIS에서 PHP로딩 속도를 빠르게!







    1. WinCache를 사용하는 이유?


    IIS를 이용하면서 사용자들이 가장 많이 사용하는 소스 코드는 아마 PHP 일겁니다. 윈도우에서 IIS 전용으로 사용하고 있는 ASP 코드가 있지만, 실제로는 너무 IIS 전용이라 사람들이 범용으로 사용하기에는 PHP가 더 발전하였고, 그로인해 IIS를 사용하는데, PHP를 더 많이 사용합니다.


    하지만, 동등한 조건에서 스펙상의 IIS는 정말 빠르지만 막상 국내 CMS인 XE를 사용하다 보면 상당히 느린 부분이 있습니다. 특히 페이지 로딩하기 위한 초기 속도가 상당히 느린편인데, 그 부분을 개선하기 위한 방법중 하나로 Windows Cache라는 PHP 확장 프로그램을 이용하는 방법을 택하면 속도를 많이 개선 할 수 있습니다.


    이번 시간에는 WinCache 설치방법에 대해 소개를 하고 다음 시간에 실 적용 사례에 대해서 설명드리도록 하겠습니다.




    2. 제일 빠른 웹 서버는 IIS?


    모두 동등한 조건에서 3가지 웹서버를 비교한 글이 있습니다. 무료 웹서버의 대표주자인 Apache 와 상용 웹 서버인 IIS (윈도우가 무료가 아니기 때문에), 그리고 요즘에 떠오르는 웹서버인 NginX 입니다.


    해외 블로그 글 중에서 세가지 웹서버를 비교한 글이 있어서 빌려왔습니다.

    주제는 NginX가 가장 좋은 HTTP 서버인가? 란 주제로 글을 썼는데, 아파치 보다는 조금 더 좋은 결론으로 나왔습니다. 여기에 IIS 성능비교 한 것까지 같이 있어서 인용합니다.


    원본 글 링크 - http://www.gtcomm.net/blog/nginx-the-best-http-server/


    세가지 웹서버를 세가지 사항으로 비교를 하였네요.


    CPU Utilization - CPU 점유율 : 낮을 수록 좋습니다.

    • IIS – 9 percent

    • Nginx – 21 percent

    • Apache – 26 percent


    Peak Throughput - 초당 최대 응답량 : 높을 수록 좋습니다.

    • IIS – 49,000 responses per second (r/s)

    • Nginx – 23,000 r/s

    • Apache – 14,000 r/s


    Response Time - 반응 속도 : 낮을 수록 좋습니다.

    • IIS – 2.8 milliseconds

    • Nginx – 5.5 milliseconds

    • Apache – 6.3 milliseconds


    이렇게 비교를 해보면 IIS는 제일 빠른 웹서버라고 할 수 있습니다. 하지만 이것저것 실행이 되어져 있는 윈도우 상에서 반드시 실행되어야 하기 때문에 상대적으로 버벅임이 생겨 결과적으로 체감상으로 느리다고 판단할 수 있습니다. 물론 윈도우 서버 코어버전도 있지만, 가벼운 리눅스에서 슉슉 돌리는 웹서버보다는 무거운 감이 있지요.


    최적화를 잘해서 속도가 잘 나오는 환경이라고 해도 좀 더 속도를 뽑아 낼 수 있다면 조금이라도 속도를 더 낼 수 있도록 설정해 놓는 것이 좋겠지요.




    3. WinCache 다운로드 및 설치 (직접 설치)


    설치하기 전에 반드시 먼저 알아놔야 하는 사항이 있습니다. 이 WinCache는 PHP 버전에 따라서 다르기 때문에 맞는 버전으로 준비해야 합니다. 소스포지(http://sourceforge.net/)에 가면 각 버전별, PHP 버전별로 다운로드 하실 수 있습니다.


    WinCache를 설치하기 전, 반드시 확인해야 하는 사항은 다음과 같습니다.

    1. PHP 버전이 Non thread Safe 버전인지 확인

    2. WPI (Web Platform Installer)를 통해 설치하였는지, 아니면 직접 설치를 하였는지 확인합니다.


    웹 플랫폼 설치 관리자를 통해서 설치를 한 경우에는 Non Thread Safe 버전으로 설치되어 있습니다.


    관련글


    개인서버 만들기 다섯번째 – 웹 플랫폼 설치 관리자 사용하기

    개인서버 만들기 여섯번째 - PHP설치 및 PHP관리자 사용하기

    개인 서버 만들기 일곱번째 - 최신버전 php 설치하기


    Sourceforge에서 WinCache의 프로젝트 페이지로 접속합니다. (http://sourceforge.net/projects/wincache) 그 중 메뉴 중에서 Files로 들어가면 버전별로 준비가 되어 있습니다.


    가급적이면 PHP 버전이 5.3 버전 이상을 권장합니다. WinCache가 1.3 버전부터 기능적으로 추가가 되는 부분이 있는데 지원가능한 PHP 최소 버전이 5.3 버전입니다.


    그리고 다운로드 파일중에 wincache 파일이 있고, wincachewpi 파일이 있습니다. wpi가 붙은 파일은 웹 플랫폼 설치 관리자를 통해서 한다는데, 그것보다는 그냥 wincache 파일을 받는 것이 확장 모듈파일인 php_wincache.dll 파일을 직접 제공하므로 더 편할 수 있습니다.


    소스포지에 가면 버전별로 정리가 되어 있습니다. 이중에서 가급적이면 1.3 버전 이상으로 받도록 합니다.



    먼저 1.3.4 버전에서 지원가능한 PHP 버전입니다. - PHP 5.3 / 5.4 지원


    1.3.5 버전에서 지원가능한 PHP 버전입니다. - PHP 5.5 지원



    1.3.6 버전에서 지원가능한 PHP 버전입니다. - PHP 5.5 / 5.6 지원



    위의 세개의 버전은 1.3.6버전이 제일 좋은 버전이 아니고 1.3.X 버전들은 모두 같은 버전입니다. 뒤에 붙은 숫자는 PHP 지원버전을 의미합니다.


    편의를 위해 필요한 파일인 php_wincache.dll 파일을 각 버전별로 마련 하였습니다.


    PHP 5.3 / WinCache 1.3.4 버전


    php_wincache.dll


    PHP 5.4 / WinCache 1.3.4 버전


    php_wincache.dll


    PHP 5.5 / WinCache 1.3.5 버전


    php_wincache.dll


    PHP 5.5 / WinCache 1.3.6.1 버전


    php_wincache.dll


    PHP 5.6 / WinCache 1.3.6.1 버전


    php_wincache.dll


    본인의 PHP 버전에 맞게 다운로드 하고 PHP설치된 폴더 안에 하위폴더인 ext 폴더 안에 넣고 하단에 설명 내용대로 설정하시면 됩니다.


    다운 받은 파일의 압축을 풀면 php_wincache.dll 파일과 함께 여러 파일들이 생성되는데, 이중에서 주목할 것은 php_wincache.dll 입니다. 이 파일은 php 확장 모듈 파일로 php/ext 폴더에 복사하고 php 관리자에서 확장 모듈을 추가해주시거나 php.ini 파일에 구문을 추가해서 설정해주면 됩니다.



    php관리자를 통한 설정


    IIS내의 php 관리자로 들어가서 제일 하단에 Enable or disable an extension을 클릭합니다.



    PHP Extension 중에서 php_wincache 부분을 Enable로 바꿔줍니다.




    php.ini 파일에 추가


    위에 php 관리자가 없거나 또는 직접 추가를 해야 하는 환경에서는 메모장을 통해 php.ini의 제일 하단에 다음과 같은 내용을 추가 합니다.



    [PHP_WINCACHE]

    extension=php_wincache.dll


    이것으로 직접 설치를 완료 하였습니다.




    4. 웹 플랫폼 설치 관리자를 이용해 설치



    웹 플랫폼 설치관리자를 실행해서 cache를 검색 합니다. 그러면 몇개가 나오는데, 이중에 windows cache extention 1.3 파일을 추가하고 설치 합니다. (여기에는 IIS Express로 되어있는데, 그냥 IIS Express 아닌 것도 있습니다. 그걸로 설치하세요.)



    사용조건에 동의하고 설치합니다.




    웹 플랫폼 설치 관리자를 토대로 설치를 진행하면 모든 설정이 자동으로 완료가 됩니다. 다만, 지원 php버전이 5.5만 있는 것은 좀 아쉽네요.




    5. 정상적으로 작동하는지 확인하기


    PHP 확장 모듈로 제대로 추가가 되었다면 php info 에서 확인이 가능하고, 확인이 된다면 정상적으로 설치가 완료된 것입니다. php info를 쉽게 확인하는 방법은 PHP 관리자를 통해서 확인하는 방법이 가장 빠릅니다.


    여기서 Check phpinfo() 를 선택합니다.



    그리고 다음과 같은 화면이 나오면 Ctrl+F를 눌러 wincache를 검색합니다.



    정상적으로 내용들이 보이면 설치가 완료된 것입니다.



    WinCache의 설치가 완료 되었습니다.

    이제 본격적으로 wincache를 적용한 예와 고급 설정 방법에 대해서는 다음 포스팅을 통해 다루도록 하겠습니다. 잠깐 XE에 적용해서 사용해보니 정말 빠르긴 하네요.







    Posted by Study For Us clamp2x
    • Favicon of http://www.tezy.net BlogIcon 김루노
      2014.08.18 16:04 신고

      다운로드 감사합니다.

      자꾸만 소스파일로 받아져서 ㅠㅠ

    • Favicon of http://sapphosound.com BlogIcon 사포
      2014.11.19 22:18 신고

      웹 플랫폼 설치 관리자에서도 WinCache를 설치할 수 있군요 ㅎㅎ 설치하기 무서워서 그냥 안쓰고 있었는데 당장 써봐야겠어요~

      • Favicon of http://studyforus.tistory.com BlogIcon Study For Us clamp2x
        2014.11.20 00:29 신고

        웹 플랫폼 설치관리자에서 다운로드 할 수 있습니다. 적용해보시고 잘 안되는게 있으면 직접 설치하셔도 무방합니다. 쉬워요~^^

티스토리 툴바