Có - Laravel thực sự rất chậm. Tôi đã xây dựng một ứng dụng POC vì lợi ích này. Bộ định tuyến đơn giản, có biểu mẫu đăng nhập. Tôi chỉ có thể nhận được 60 RPS với 10 kết nối đồng thời trên một máy chủ đại dương kỹ thuật số 20 đô la (vài GB ram);
Thiết lập:
2gb RAM
Php7.0
apache2.4
mysql 5.7
memcached server (for laravel session)
Tôi đã chạy tối ưu hóa, tự động tải kết xuất trình soạn nhạc, v.v. và nó thực sự đã hạ RPS xuống 43-ish .
Vấn đề là ứng dụng phản hồi trong 200-400ms. Tôi đã chạy kiểm tra AB từ máy cục bộ đã bật laravel (tức là không thông qua lưu lượng truy cập web); và tôi chỉ nhận được 112 RPS; với thời gian phản hồi nhanh hơn 200ms với mức trung bình là 300ms.
Tương tự, tôi đã thử nghiệm ứng dụng PHP Native sản xuất của mình chạy vài triệu yêu cầu mỗi ngày trên AWS t2.medium (x3, cân bằng tải). Khi tôi AB với 25 kết nối đồng thời từ máy cục bộ của mình tới máy đó qua web, thông qua ELB, tôi nhận được khoảng 1200 RPS. Sự khác biệt rất lớn trên máy có tải so với trang "đăng nhập" laravel.
Đây là các trang có Phiên (bộ đệm đàn hồi / memcached), tra cứu Live DB (truy vấn được lưu trong bộ nhớ cache qua bộ nhớ đệm), Nội dung được kéo qua CDN, v.v., v.v.
Những gì tôi có thể nói, laravel dính khoảng 200-300ms tải trên mọi thứ. Xét cho cùng thì cũng tốt cho các khung nhìn PHP Generated, kiểu trễ đó có thể chấp nhận được khi tải. Tuy nhiên, đối với các khung nhìn PHP sử dụng Ajax / JS để xử lý các cập nhật nhỏ, nó bắt đầu cảm thấy chậm chạp.
Tôi không thể tưởng tượng hệ thống này sẽ như thế nào với một ứng dụng nhiều người thuê trong khi 200 bot thu thập thông tin 100 trang mỗi người cùng một lúc.
Laravel rất tuyệt vời cho các ứng dụng đơn giản. Lumen có thể chấp nhận được nếu bạn không cần phải làm bất cứ điều gì yêu cầu vô nghĩa phần mềm trung gian (IE, không có ứng dụng nhiều người thuê và miền tùy chỉnh, v.v.);
Tuy nhiên, tôi không bao giờ thích bắt đầu với thứ gì đó có thể ràng buộc và gây ra tải 300ms cho một bài đăng "hello world".
Nếu bạn đang nghĩ "Ai quan tâm?"
.. Viết một tìm kiếm dự đoán dựa trên các truy vấn nhanh để trả lời các đề xuất tự động hoàn thành trên một vài trăm nghìn kết quả. Độ trễ 200-300ms đó sẽ khiến người dùng của bạn hoàn toàn mất trí.
php artisan optimize --force