您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何測試Laravel Octane Beta”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何測試Laravel Octane Beta”吧!
測試機(jī)器配置:
4 Cores 16gPHP 8.0.3Swoole 4.6.4
一、測試 web 路由
路由配置:
//routes/web.phpRoute::get('/benchmark', function () { return ['foo' => 'bar'];});
服務(wù)端啟動(dòng)命令:
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
測試結(jié)果:
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
測試結(jié)論:
性能很差,后面猜測可能是因?yàn)?web 路由會使用 session,默認(rèn)配置的是文件 session。之后我就換成了 api 路由進(jìn)行測試。
二、測試 Api 路由 (32 workers)
路由配置:
//routes/api.phpRoute::get('/benchmark', function () { return ['foo' => 'bar'];});
限流配置:
protected $middlewareGroups = [... 'api' => [ ... //'throttle:api', ... ],...];
服務(wù)端啟動(dòng)命令:
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
測試結(jié)果:
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', ... ],...];
服務(wù)端啟動(dòng)命令:
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
測試結(jié)果:
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
從結(jié)果可以看出,沒有使用 session 的 api 路由接口,性能有大幅提升。服務(wù)端 worker 數(shù)量增加后性能提升不明顯。
由于時(shí)間和資源的限制,測試并不是很嚴(yán)謹(jǐn),沒有測試數(shù)據(jù)庫的操作,也沒有和 php-fpm 模式進(jìn)行對比。接口和測試工具運(yùn)行在同一臺 ECS 上面。期待之后有更權(quán)威詳細(xì)的第三方測評。
到此,相信大家對“如何測試Laravel Octane Beta”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。