Học lập trình web trực tuyến bằng PHP 7

Nền tảng nào là tốt nhất cho các PHP engine nhanh nhất?

Càng tới gần ngày ra mắt PHP 7, sự cạnh tranh giữa  PHP 7 và HHVM càng ngày càng nóng hổi. HHVM đã từng dẫn trước PHP với việc chuyển đổi code PHP thành C++ trước khi chạy thậm chí chiến thuật của HHVM đã thay đổi bằng cách chuyển code PHP thành mã máy x86-64 để tăng hiệu suất của trang web PHP lên một cách đáng kể. Tuy nhiên PHP cũng có những nỗ lực rất lớn để trở thành người đúng đầu với việc chuẩn bị cho ra mắt PHP 7. Liệu ai sẽ là người thắng trong cuộc đua này? PHP 7 hay HHVM?

Trước khi đi vào so sánh bất kỳ khía cạnh khác biệt nào của HHVM và PHP 7, chúng ta cần trả lời một câu hỏi cơ bản: Web server nào sẽ đem lại hiệu năng tốt nhất cho các hệ thống PHP? Một ví dụ kiểm thử đơn giản với mã nguồn Hello World sẽ cho chúng ta câu trả lời tương đối ổn thỏa. Thay vì kiểm thử hiệu năng của PHP, kiểm thử Hello World sẽ cho ta thấy tốc độ giao tiếp giữa web server và PHP Engine trong trường hợp chi phí phụ tải nhỏ nhất có thể. Đây sẽ là nền tảng cho các cuộc kiểm thử so sánh tốc độ giữa PHP 7 và HHVM trong loạt bài này.

Trong bài viết này, chúng ta so sánh 4 web server LiteSpeed, OpenLiteSpeed, Nginx và Apache. FastCGI được sử dụng bởi tất cả các web server khi giao tiếp với HHVM. Khi giao tiếp với PHP 7, LiteSpeed Server Application Programming Interface (LSAPI) được sử dụng cùng với LiteSpeed và OpenLiteSpeed, PHP-FPM được dùng với Nginx, mod_PHP và PHP-FPM đều được dùng với Apache.

Chúng tôi cũng thử điều chỉnh cấu hình web server, cấu hình PHP và HHVM để các thiết lập trở nên tương đồng nhất có thể trước khi thực hiện các benchmark.

Unix Socket được sử dụng cho kết nối FastCGI thay vì cổng TCP bởi nó có hiệu năng hoạt động tốt hơn.

Chúng tôi dùng AB benchmark tool để giả lập 50 concurrent user và 100.000 request với HTTP KeepAlive bằng dòng lệnh sau:

ab -k -c 50 -n 100000 http://192.168.0.61/hello.php

Học lập trình web online bằng PHP 7

Học lập trình online xin việc làm

Cấu hình Benchmark Server

Typical VPS Server in an OpenVZ container
Running CentOS 7
2 cores of Intel(R) Xeon(R) CPU E5-1620 @ 3.60GHz
4G RAM

PHP7-nightly build from Zend: PHP Version => 7.0.0-dev, Build Date => Jun 3 2015
HipHop VM 3.7.1-dev
LiteSpeed: 4.2.23
OpenLiteSpeed 1.4.8
Nginx: 1.8.0
Apache: 2.4.6

Đối đầu với:

Chúng tôi đã tạo ra khá nhiều cấu hình khác nhau để phục vụ benchmark, bao gồm:

LiteSpeed Enterprise 4.2.23 with PHP 7
OpenLiteSpeed 1.4.8 with PHP 7
Apache 2.4.6 with PHP 7 – mod_PHP
Nginx 1.8.0 with PHP 7 – PHP-FPM
LiteSpeed Enterprise 4.2.23 with HHVM 3.7.1
OpenLiteSpeed 1.4.8 with HHVM 3.7.1
Apache 2.4.6 with PHP 7 – PHP-FPM
Nginx 1.8.0 with HHVM 3.7.1
Apache 2.4.6 with HHVM 3.7.1

Điểm nổi bật và kết luận

Kiểm thử với ứng dụng đơn giản là Hello World, PHP 7 đánh bại HHVM, PHP 7 chạy nhanh hơn HHVM tới 140%.

LiteSpeed LSAPI (including OpenLiteSpeed LSAPI) vẫn đứng đầu danh sách các cách giao tiếp nhanh nhất với PHP Engine. Nó nhanh hơn mod_PHP, PHP-FPM và HHVM FastCGI.

Khi sử dụng PHP 7, LiteSpeed và OpenLiteSpeed khiến PHP Engine chạy nhanh hơn Nginx 110% và nhanh hơn Apache 187%.

Khi sử dụng HHVM, LiteSpeed và OpenLiteSpeed khiến PHP Engine chạy nhanh hơn Nginx 73% và nhanh hơn Apache 100%.

OpenLiteSpeed có hiệu năng tương tự LiteSpeed Enterprise.

Trong vòng đầu tiên của loạt bài so sánh PHP 7 với HHVM, chúng ta đã đo xem web server của bạn thực hiện giao tiếp với PHP engine nhanh đến đâu. Đây đơn thuần là đo tốc độ giao tiếp giữa web server và PHP Engine (IPC cost) và không thể hiện tốc độ của các PHP Engine. Trong vấn đề này, LiteSpeed nổi bật nhất trong các server. Còn về so sánh hiệu năng giữa các PHP Engine, các bạn hãy cùng đón chờ bài tiếp theo trong loạt bài này nhé. 

Nguồn: Blog LiteSpeedTech