国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Webserver性能如何

yepo

用Workerman的GW快2年了,感覺(jué)挺不錯(cuò)的,現(xiàn)在有個(gè)項(xiàng)目想webServer,但是webServer的簡(jiǎn)介“WorkerMan自帶了一個(gè)簡(jiǎn)單的Web服務(wù)器,同樣也是基于Worker實(shí)現(xiàn)的。文件位置在Workerman/WebServer.php。這個(gè)WebServer開(kāi)發(fā)的目的主要是為了方便運(yùn)行一些簡(jiǎn)單的Web程序”讓我有點(diǎn)迷惑。。。意思是說(shuō)它只能用來(lái)寫(xiě)寫(xiě)小網(wǎng)站,不能承受大任。。。。是這個(gè)意思?

5206 1 0
1個(gè)回答

walkor 打賞

2020-08-18日更新
如果需要使用workerman作為webserver,強(qiáng)烈推薦 webman,一個(gè)專(zhuān)門(mén)做HTTP服務(wù)的框架,性能與workerman相當(dāng),簡(jiǎn)單易用穩(wěn)定,性能超級(jí)好。
——————————————————————————————————————————
總體來(lái)說(shuō)workerman的tcp worker 性能 > workerman的http worker性?>?webserver,因?yàn)閣ebserver每個(gè)請(qǐng)求要從磁盤(pán)讀取文件并解析,會(huì)有一些磁盤(pán)io損耗。但是worekrman的webserver的性能仍好于nginx+php-fpm組合。
以下是我的mac pro筆記本跑的http worker 和 webserver的helloworld性能測(cè)試,php版本7.1.16,你可以參考下。
?
1、http worker 9W+QPS
代碼

<?php
require_once __DIR__ . '/../Workerman/Autoloader.php';
use Workerman\Worker;
$worker = new Worker('http://0.0.0.0:1234');
$worker->count = 7;
$worker->onMessage = function($connection, $data) {
    $connection->send('hello');
};
Worker::runAll();?

壓測(cè)結(jié)果 QPS 9.2W

ab -n 100000 -c100 -k  http://127.0.0.1:1234/
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests

Server Software:        workerman/3.5.15
Server Hostname:        127.0.0.1
Server Port:            1234

Document Path:          /
Document Length:        5 bytes

Concurrency Level:      100
Time taken for tests:   1.084 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    100000
Total transferred:      13200000 bytes
HTML transferred:       500000 bytes
Requests per second:    92280.29  (mean)
Time per request:       1.084  (mean)
Time per request:       0.011  (mean, across all concurrent requests)
Transfer rate:          11895.51  received

Connection Times (ms)
              min  mean median   max
Connect:        0    0   0.1      0       5
Processing:     0    1   0.3      1       5
Waiting:        0    1   0.3      1       4
Total:          0    1   0.4      1       6

2、webserver 3W+QPS
代碼

<?php
require_once __DIR__ . '/../Workerman/Autoloader.php';
use Workerman\Worker;
use Workerman\WebServer;
$worker = new WebServer('http://0.0.0.0:1235');
$worker->count = 7;
$worker->addRoot('localhost', __DIR__ . '/Web');
Worker::runAll();

test.php內(nèi)容

<?php
echo 'hello world';

結(jié)果 3.4W QPS

ab -n 100000 -c100 -k  http://127.0.0.1:1235/test.php
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests

Server Software:        workerman/3.5.15
Server Hostname:        127.0.0.1
Server Port:            1235

Document Path:          /test.php
Document Length:        11 bytes

Concurrency Level:      100
Time taken for tests:   2.895 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    100000
Total transferred:      13900000 bytes
HTML transferred:       1100000 bytes
Requests per second:    34542.24  (mean)
Time per request:       2.895  (mean)
Time per request:       0.029  (mean, across all concurrent requests)
Transfer rate:          4688.84  received

Connection Times (ms)
              min  mean median   max
Connect:        0    0   0.1      0       5
Processing:     0    3   1.4      3      11
Waiting:        0    3   1.4      3      11
Total:          0    3   1.4      3      11

總結(jié):
?
雖然壓測(cè)性能不代表最終實(shí)際項(xiàng)目性能,但是也能看出來(lái)workerman這塊不會(huì)成為瓶頸,即使是每次都從磁盤(pán)加載文件的webserver性能也足夠好。
?
但是實(shí)際上大部分項(xiàng)目不需要這么高的性能,絕大多數(shù)項(xiàng)目QPS有幾百就很不錯(cuò)了,nginx+php-fpm這里不會(huì)成為瓶頸,萬(wàn)一瓶頸加臺(tái)機(jī)器就好,當(dāng)然你說(shuō)數(shù)據(jù)庫(kù)是瓶頸那是另外的討論話題了。
?
workerman的webserver性能雖然足夠好,但是畢竟是一個(gè)簡(jiǎn)單的web服務(wù)器,有以下缺點(diǎn):
1、和nginx+php-fpm 或者 apache比起來(lái)功能上會(huì)欠缺,比如沒(méi)有nginx/apache那么多的配置項(xiàng)。
2、大部分php框架都是基于php-fpm這種模式開(kāi)發(fā)的,不能完全不支持php cli模式,這使得傳統(tǒng)框架項(xiàng)目一般無(wú)法直接運(yùn)行在workerman上,要運(yùn)行需要大量的改造,成本很高。
?
所以新http項(xiàng)目想嘗試下高性能可以考慮workerman的http worker或者workerman的webserver,但是老項(xiàng)目還是用php-fpm或者apache較好。
?
最后說(shuō)下workerman的 http worker和webserver區(qū)別和應(yīng)用場(chǎng)景:
http worker不會(huì)每個(gè)請(qǐng)求從磁盤(pán)加載文件,程序已經(jīng)常駐內(nèi)存,所有請(qǐng)求是純內(nèi)存計(jì)算,性能超高,非常適合做一些不需要渲染頁(yè)面的http接口,或者微服務(wù)接口。
webserver每個(gè)請(qǐng)求回去磁盤(pán)加載一次文件并解析,被加載的文件沒(méi)有常駐內(nèi)存,有磁盤(pán)讀取開(kāi)銷(xiāo),性能也很好,適合需要渲染頁(yè)面的項(xiàng)目。
?
?

  • 你好啊 2018-12-19

    再問(wèn)一個(gè)問(wèn)題,“webserver每個(gè)請(qǐng)求回去磁盤(pán)加載一次文件并解析,被加載的文件沒(méi)有常駐內(nèi)存,”。但是如果在webserver下,如果訪問(wèn)的頁(yè)面用include或者require引入文件的話,再次刷新頁(yè)面會(huì)提示Cannot declare class的錯(cuò)誤,也就是說(shuō)這個(gè)類(lèi)已經(jīng)存在了,這又是為何呢?

  • walkor 2018-12-19

    這里說(shuō)的不夠嚴(yán)謹(jǐn),實(shí)際上類(lèi)和函數(shù)以及常量的定義是常駐內(nèi)存的。

  • yepo 2018-12-19

    感謝大大的詳細(xì)回復(fù)?。。。。?/p>

  • 你好啊 2018-12-19

    @1:太感謝大神的回復(fù)解答了!支持!支持!

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??