테스트 환경:
- AWS c6i.2xlarge (8코어 CPU, 16GB RAM)
- Ubuntu 22.04 LTS
- nginx 1.18.0
- PHP 7.4.33 그리고 8.3.1
- MariaDB 10.6.12
테스트 대상: 각 버전대의 최종 버전
- XE 1.11.6
- Rhymix 1.9.9.9
- Rhymix 2.0.24
- Rhymix 2.1.12
테스트 방법:
- 각 CMS 순정 설치 및 서버 최적화 후, siege를 사용하여 메인 화면 16,000회 반복 요청
- 각 5회 반복 후, 가장 높은 Transaction rate를 기록
- 명령: siege -c 16 -r 1000 --no-parser http://127.0.0.1/경로/
테스트 환경의 일관성 유지를 위한 설정:
- AWS의 열악한 디스크 성능에 영향을 받지 않도록, 세션 저장소는 램디스크(tmpfs) 사용
- PHP opcache 및 apc (apcu / apcu-bc) 캐시 용량은 256M로 넉넉하게 설정
- XE, 라이믹스 모두 apc 캐시 방식 적용 (XE는 이걸 쓰든 말든 성능 차이가 없긴 합니다;;;)
- 라이믹스는 스크립트 압축 및 디버그 기능 해제 (XE에 없는 기능 중 그나마 끄기 쉬운 것이므로)
- 모든 버전에서 짧은주소 OFF, 레이아웃은 XEDITION 사용
테스트 결과:
CMS | PHP | 점수 |
---|---|---|
XE 1.11.6 | 7.4.33 | 1042.35 |
8.3.1 | 에러 | |
Rhymix 1.9.9.9 | 7.4.33 | 1331.11 |
8.3.1 | 에러 | |
Rhymix 2.0.24 | 7.4.33 | 1245.14 |
8.3.1 | 1353.64 | |
Rhymix 2.1.12 | 7.4.33 | 1253.92 |
8.3.1 | 1380.50 |
해석:
- 설치 직후 메인 화면에는 복잡한 DB 쿼리가 없으므로, 거의 순수하게 PHP의 속도와 CMS 코어의 속도를 측정하게 됩니다. 쿼리가 많은 게시판이나 관리자 화면 등을 벤치마킹한다면 결과가 달라질 수 있습니다.
- 라이믹스 각 버전과 XE에서 기본 제공하는 XEDITION 레이아웃의 메인 화면 구성이 100% 똑같지는 않습니다.
- 코어를 개조하거나 서드파티 모듈을 사용해서 성능을 비약적으로 개선하는 방법이 있을 수 있지만, 위에 언급한 최소한의 설정 외에는 모두 순정 상태로 비교했습니다.
- 위의 내용을 감안하고 볼 때, 모든 버전의 라이믹스는 XE보다 눈에 띄게 빠릅니다.
- 라이믹스 2.0에서 라우터, 새로운 DB 클래스 등 많은 기능이 추가되고, PHP 8.x 호환성 확보와 보완취약점 제거를 위해 코드 구조가 복잡해지면서 1.9보다 6~7% 무거워졌습니다. 꾸준한 최적화로 2.1에서는 다시 가벼워지고 있습니다.
- PHP 8.3은 PHP 7.4보다 9~10% 더 빠릅니다. 라이믹스 버전별로 들쭉날쭉하는 성능보다 이 차이가 더 크기 때문에, 현재 가장 빠른 조합은 PHP 8.3 + 라이믹스 2.1입니다. 가장 느린 XE보다 32% 더 높은 성능을 보여 줍니다.
- PHP 8.3의 성능 개선 효과는 라이믹스 2.0보다 2.1이 더 높습니다. 최신 PHP에 대응하는 패치가 더 많이 적용되었기 때문일 것입니다. (Warning이나 Notice가 발생하는 것만으로도 약간의 성능 저하가 일어나고, 변수 타입을 엄격하게 지킬수록 인터프리터가 더 효율적으로 돌아간다고 합니다.)
7.4.33하고 8.3 비교하니 성능 개선이 엄청 나더라고요.
그누보드나 다른걸 돌려봐도 클릭만으로도 체감이 될 정도로 차이가 나네요.