溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP7+Swoole/Nginx/Golang性能對比案例

發(fā)布時間:2021-02-19 14:39:52 來源:億速云 閱讀:231 作者:小新 欄目:編程語言

這篇文章主要介紹了PHP7+Swoole/Nginx/Golang性能對比案例,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

QPS對比

使用apache bench工具對Nginx靜態(tài)頁、Golang Http程序、PHP7+Swoole Http程序進(jìn)行壓力測試。在同一臺機(jī)器上,進(jìn)行并發(fā)100共100萬次Http請求的基準(zhǔn)測試中,QPS對比如下:

軟件QPS軟件版本
Nginx164489.92nginx/1.4.6 (Ubuntu)
Golang166838.68go version go1.5.2 linux/amd64
PHP7+Swoole287104.12swoole-1.7.22-alpha
Nginx-1.9.9245058.70nginx/1.9.9

注:Nginx-1.9.9的測試中,已關(guān)閉access_log,啟用open_file_cache緩存靜態(tài)文件到內(nèi)存

  • 更詳細(xì)的測試細(xì)節(jié)

  • 歷史測試數(shù)據(jù):Nginx/Golang/Swoole/Node.js的性能對比

測試環(huán)境

  • CPU:Intel? Core? i5-4590 CPU @ 3.30GHz × 4

  • 內(nèi)存:16G

  • 磁盤:128G SSD

  • 操作系統(tǒng):Ubuntu14.04 (Linux 3.16.0-55-generic)

壓測工具

ab -c 100 -n 1000000 -k http://127.0.0.1:8080/

VHOST配置

server {
    listen 80 default_server;
    root /data/webroot;
    index index.html;
}

測試頁面

<h2>Hello World!</h2>

進(jìn)程數(shù)量

Nginx開啟了4個Worker進(jìn)程

htf@htf-All-Series:~/soft/php-7.0.0$ ps aux|grep nginx
root      1221  0.0  0.0  86300  3304 ?        Ss   12月07   0:00 nginx: master process /usr/sbin/nginx
www-data  1222  0.0  0.0  87316  5440 ?        S    12月07   0:44 nginx: worker process
www-data  1223  0.0  0.0  87184  5388 ?        S    12月07   0:36 nginx: worker process
www-data  1224  0.0  0.0  87000  5520 ?        S    12月07   0:40 nginx: worker process
www-data  1225  0.0  0.0  87524  5516 ?        S    12月07   0:45 nginx: worker process

Golang

測試代碼

package main

import (
    "log"
    "net/http"
    "runtime"
)

func main() {
    runtime.GOMAXPROCS(runtime.NumCPU() - 1)

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Add("Last-Modified", "Thu, 18 Jun 2015 10:24:27 GMT")
        w.Header().Add("Accept-Ranges", "bytes")
        w.Header().Add("E-Tag", "55829c5b-17")
        w.Header().Add("Server", "golang-http-server")
        w.Write([]byte("<h2>\nHello world!\n</h2>\n"))
    })

    log.Printf("Go http Server listen on :8080")
    log.Fatal(http.ListenAndServe(":8080", nil))
}

PHP7+Swoole

PHP7已啟用OpCache加速器。

PHP版本

htf@htf-All-Series:~/soft/php-7.0.0$ php -v
PHP 7.0.0 (cli) (built: Dec 10 2015 14:36:26) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

測試代碼

$http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);

$http->set([
    'worker_num' => 4,
]);

$http->on('request', function ($request, swoole_http_response $response) {
    $response->header('Last-Modified', 'Thu, 18 Jun 2015 10:24:27 GMT');
    $response->header('E-Tag', '55829c5b-17');
    $response->header('Accept-Ranges', 'bytes');    
    $response->end("<h2>\nHello Swoole.\n</h2>");
});

$http->start();

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP7+Swoole/Nginx/Golang性能對比案例”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI