EasySwoole中采用MySQL连接池并发测试

测试机

  MacBook Pro (Retina, 15-inch, Mid 2014)
  2.2 GHz Intel Core i7
  16 GB 1600 MHz DDR3

环境( brew 默认安装配置)

  PHP: 7.2.20 (cli) (built: Jul 5 2019 12:51:26) ( NTS )
  MySQL: Ver 14.14 Distrib 5.7.26, for osx10.14 (x86_64) using EditLine wrapper

不采用连接池代码

$conf = new \EasySwoole\Mysqli\Config(\EasySwoole\EasySwoole\Config::getInstance()->getConf('MYSQL'));

$db = new \EasySwoole\Mysqli\Mysqli($conf);

$data = $db->get('user');

return $this->writeJson (200,$data,'ok');
采用连接池代码
$db = MysqlPool::defer();

$data = (new \App\Model\UserModel($db))->getall ();

return $this->writeJson (200,$data,'ok');

输出结果

{
    "ret": 200,
    "data": [
        {
            "id": "1",
            "avatar": "/Static/upload/5d09ceac4de6312262La2-0.jpg",
            "nickname": "php工程师",
            "username": "test2",
            "password": "$2y$10$ueMA2hy8x.Tan3nxZlpCmugUcViGCaV/cAeA4V5YX.yU.1kCtAtzq",
            "sign": "123",
            "status": "offline"
        },
        {
            "id": "2",
            "avatar": "/Static/upload/5d09c7da7bc97tx20218.jpg",
            "nickname": "前端工程师",
            "username": "test1",
            "password": "$2y$10$m.4h0u0L56G2Oje6ZnNMyulR.9DMvPT4VkXo2RcTHr8NEqVa.cq8C",
            "sign": "我是前端工程师",
            "status": "offline"
        },
        {
            "id": "3",
            "avatar": "/Static/upload/5d09c6a5b6def15337177846531748ac16fb.jpg",
            "nickname": "jin",
            "username": "jin",
            "password": "$2y$10$cS3rfhqaHeOfVfkAFd1MnuzslrWhihLP/awA07hQPOfUqixV0yp1q",
            "sign": "我是jin",
            "status": "online"
        }
    ],
    "msg": ""
}

测试对比结果

各对以上代码进行并发1000,持续30秒测试

测试结果如下

----采用连接池不采用连接池
请求总数168647724
响应成功数168647695
每秒响应请求数562257.4
最大响应时间380.6ms430.5ms
最小响应时间0.154ms0.097ms
平均响应时间2.2ms2.4ms

以上对比看不出效果?继续看下面

  CPU:X5650 2.67GHz 24核心(开启超线程后)
  内存:32 GB 1067 MHz

并发5000,持续30秒测试

----采用连接池php-fpm mysqli
请求总数426190394410
响应成功数426190372011
每秒响应请求数14206.313146.9
最大响应时间29.566ms3024.86ms
最小响应时间0.035ms0.038ms
平均响应时间0.23ms32.28ms