Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung des Leistungsvergleichs von PHP7+Swoole/Nginx/Golang

Einführung des Leistungsvergleichs von PHP7+Swoole/Nginx/Golang

coldplay.xixi
coldplay.xixinach vorne
2021-02-18 17:59:503084Durchsuche

Einführung des Leistungsvergleichs von PHP7+Swoole/Nginx/Golang

Empfohlen (kostenlos): PHP7

QPS-Vergleich

Verwenden Sie das Apache-Bench-Tool, um statische Nginx-Seiten, das Golang-HTTP-Programm und das PHP7+Swoole-HTTP-Programm einem Stresstest zu unterziehen. Im Benchmark-Test von 1 Million gleichzeitigen HTTP-Anfragen auf demselben Computer lautet der QPS-Vergleich wie folgt:

ngin x /1,4 6 (Ubuntu) .22-alphaNginx- 1.9. 9245058.70nginx/1.9.9Hinweis: Im Test von Nginx-1.9.9 wurde access_log deaktiviert und open_file_cache aktiviert, um statische Dateien im Speicher zwischenzuspeichernDetaillierter Testdetails Historische Testdaten: Leistungsvergleich von Nginx/Golang/Swoole/Node.jsTestumgebungCPU: Intel® Core™ i5-4590 CPU @ 3,30 GHz × 4
Software QPS Softwareversion
Nginx 164489.92
Speicher: 16G

Festplatte: 128G SSD
    Betriebssystem: Ubuntu14.04 (Linux 3.16.0-55-generic)
  • Stresstest-Tool

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

VHOST-Konfiguration
    server {
        listen 80 default_server;
        root /data/webroot;
        index index.html;
    }
  • Testseite
  • 4a249f0d628e2318394fd9b75b4636b1Hello World!473f0a7621bec819994bb5020d29372a
  • Anzahl der Prozesse
  • Nginx hat 4 Worker-Prozesse gestartet
  • 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

    Test.code

    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("4a249f0d628e2318394fd9b75b4636b1\nHello world!\n473f0a7621bec819994bb5020d29372a\n"))
        })
    
        log.Printf("Go http Server listen on :8080")
        log.Fatal(http.ListenAndServe(":8080", nil))
    }

    PHP7+ Swoole

    PHP7 hat

    Accelerator aktiviert .

    PHP-Version

    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

    Testcode

    $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("<h1>\nHello Swoole.\n</h1>");
    });
    
    $http->start();

    Verwandte kostenlose Lernempfehlungen:

    PHP-Programmierung

    (Video)

    OpCache

    Das obige ist der detaillierte Inhalt vonEinführung des Leistungsvergleichs von PHP7+Swoole/Nginx/Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

  • Stellungnahme:
    Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen