20151026

PHP 7 정식 출시 기념 벤치

PHP 7.0 정식 GA가 며칠 남았다 (12월 3일 예정). 상반기에 alpha 벤치 돌렸던거랑 맞물려서 RC8 기준으로 다시 한바퀴 돌려봤다. 이번엔 회사 실제 코드 위에서.

작년 이맘때쯤 5.6으로 올리면서 한참 고생했는데, 벌써 7이라니... 돌이켜보면 php 생태계가 이만큼 속도낸적이 없었던거 같다. HHVM이 등장 안했으면 7도 이렇게 빨리 안나왔을듯.

환경: 회사 커머스 프론트엔드 (Symfony 2.7 기반), Apache2.4 + php-fpm, 동일 하드웨어에서 5.6.14와 7.0.0RC8 번갈아 돌림. ab로 100 동시요청, 10000 전체.

결과 요약:

5.6.14     req/s:  312.7    mean: 319.8 ms
7.0.0 RC8  req/s:  608.4    mean: 164.3 ms

거의 2배. opcache는 양쪽 다 켜놓은 상태. 메모리 사용량도 유의미하게 내려감. 프로세스당 평균 60MB → 38MB. 덕분에 같은 서버에서 max_children 더 띄울 수 있을것 같다.

코드 수정은 몇가지 필요했음. mysql_* 빠진거랑 ereg* 빠진거 잡느라 일주일. 다행히 Symfony는 프레임워크 자체가 오래전부터 대응되어 있었음.

돌아보면 2013년에 5.5 올리면서 OPcache 붙이던게 엊그제 같은데, 2년만에 엔진이 통째로 리라이트 되어 나온 셈. zval 재구성이 이렇게 큰 성능 차이를 내는구나 싶다.

회사에 건의할 계획: 12월에 정식 릴리즈 나오면 스테이징 1월 반영, 프로덕션은 3월 이후. 라이브러리 호환성 한번 더 전수점검 후. 이제 호스팅사들도 하나둘 지원할거고 곧 표준이 될거 같다.

댓글 없음: