测试 laravel9 加速引擎Octane的性能

Laravel框架
659
0
0
2022-11-10

测试laravel加速引擎Octane的性能

1.测试环境

win10本地虚拟机centos7(4核4G)

laravel/framework 9.19

laravel/octane 1.2

PHP 8.0.20

nginx 1.22.0

2.创建站点

修改web.php 添加测试路由

Route::get('/test', function () {
    $i = 0;
    $sum = 0;
    while ( $i<100000)
    {
        $i++;
        $sum += mt_rand(1,999);
    }
    return "站点测试,计数:$i 随机总数: $sum";
});

3. 测试

测试之前服务器状态

测试laravel加速引擎Octane的性能

3.1 使用php-fpm管理php

ab -c 10 -n 100 url , -c 10表示并发用户数为10 , -n 100表示请求总数为100

n为1000时 测试跑不起来, 太多的php-fpm 高负荷导致响应失败

测试
#n为500
ab -n 500 -c 100 http://192.168.213.149/test

测试中 服务器状态

测试laravel加速引擎Octane的性能

测试结果

测试laravel加速引擎Octane的性能

每秒处理的请求数(Requests per second)为 14.76

3.2 使用加速引擎(Laravel Octane+ swoole)

安装swoole

安装加速引擎

composer require laravel/octane
php artisan octane:install
#选择swoole服务

配置nginx, 让octane来处理php

#处理nginx报错 Unknown "connection_upgrade" Variable 
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 80;
    server_name domain.com;
    root /home/forge/domain.com/public;\
    index index.php;

    ########### 区别与fast-cgi的主要配置 ###########################
    location /index.php {
        try_files /not_exists @octane;
    }
    location / {
        try_files $uri $uri/ @octane;
    }
    location @octane {
        set $suffix "";

        if ($uri = /index.php) {
            set $suffix ?$query_string;
        }

        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header SERVER_PORT $server_port;
        proxy_set_header REMOTE_ADDR $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass http://127.0.0.1:8000$suffix;
    }
    #####################################################
}

开启octane服务

php artisan octane:start --workers=8 --task-workers=10
测试
ab -n 100000 -c 100 http://192.168.213.149/test

测试中 服务器状态

测试laravel加速引擎Octane的性能

测试结果

测试laravel加速引擎Octane的性能

每秒处理的请求数(Requests per second)为 244.30

4.结尾

有Laravel Octane的管理 swoole , 更好的控制swoole

虚拟机环境下和正式环境有所区别, 但仍有绝对说服力让你去使用Octane

Octane处理支持swoole, 你也可以选择 Open SwooleRoadRunner

其他相关详细的介绍请参考laravel9的中文文档

Octane(加速引擎)