您好,登錄后才能下訂單哦!
本篇內容主要講解“如何測試Laravel Octane Beta”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何測試Laravel Octane Beta”吧!
測試機器配置:
4 Cores 16gPHP 8.0.3Swoole 4.6.4
一、測試 web 路由
路由配置:
//routes/web.phpRoute::get('/benchmark', function () { return ['foo' => 'bar'];});
服務端啟動命令:
php artisan octane:start --server=swoole --port=9999 \-host=0.0.0.0 --max-requests=20000 --task-workers=2 \--workers=32 --quiet
性能測試工具命令:
wrk -d10 -c300 -t32 --timeout=15 \http://127.0.0.1:9999/benchmark
測試結果:
Running 10s test @ http://127.0.0.1:9999/benchmark 32 threads and 300 connections Thread Stats Avg Stdev Max +/- Stdev Latency 568.28ms 249.82ms 1.34s 67.44% Req/Sec 9.51 10.69 148.00 93.08% 1846 requests in 10.11s, 1.86MB readRequests/sec: 182.67Transfer/sec: 188.74KB
測試結論:
性能很差,后面猜測可能是因為 web 路由會使用 session,默認配置的是文件 session。之后我就換成了 api 路由進行測試。
二、測試 Api 路由 (32 workers)
路由配置:
//routes/api.phpRoute::get('/benchmark', function () { return ['foo' => 'bar'];});
限流配置:
protected $middlewareGroups = [... 'api' => [ ... //'throttle:api', ... ],...];
服務端啟動命令:
php artisan octane:start --server=swoole --port=9999 \-host=0.0.0.0 --max-requests=20000 --task-workers=2 \--workers=32 --quiet
性能測試工具命令:
wrk -d10 -c300 -t32 --timeout=15 \http://127.0.0.1:9999/api/benchmark
測試結果:
Running 10s test @ http://127.0.0.1:9999/api/benchmark 32 threads and 300 connections Thread Stats Avg Stdev Max +/- Stdev Latency 242.12ms 130.53ms 617.97ms 63.19% Req/Sec 41.43 24.41 390.00 71.86% 11712 requests in 10.11s, 2.67MB readRequests/sec: 1158.26Transfer/sec: 270.34KB
三、測試 Api 路由 (64 workers)
路由配置:
//routes/api.phpRoute::get('/benchmark', function () { return ['foo' => 'bar'];});
限流配置:
protected $middlewareGroups = [... 'api' => [ ... //'throttle:api', ... ],...];
服務端啟動命令:
php artisan octane:start --server=swoole --port=9999 \-host=0.0.0.0 --max-requests=20000 --task-workers=2 \--workers=64 --quiet
性能測試工具命令:
wrk -d10 -c300 -t32 --timeout=15 \http://127.0.0.1:9999/api/benchmark
測試結果:
Running 10s test @ http://127.0.0.1:9999/api/benchmark 32 threads and 300 connections Thread Stats Avg Stdev Max +/- Stdev Latency 191.59ms 150.91ms 711.89ms 72.06% Req/Sec 71.80 46.26 450.00 56.46% 15971 requests in 10.10s, 3.64MB readRequests/sec: 1581.67Transfer/sec: 369.16KB
從結果可以看出,沒有使用 session 的 api 路由接口,性能有大幅提升。服務端 worker 數量增加后性能提升不明顯。
由于時間和資源的限制,測試并不是很嚴謹,沒有測試數據庫的操作,也沒有和 php-fpm 模式進行對比。接口和測試工具運行在同一臺 ECS 上面。期待之后有更權威詳細的第三方測評。
到此,相信大家對“如何測試Laravel Octane Beta”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。