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

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

coldplay.xixi
Freigeben: 2023-02-17 19:52:02
nach vorne
3188 Leute haben es durchsucht

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;
    }
    Nach dem Login kopieren
  • Testseite
  • <h1>Hello World!</h1>
    Nach dem Login kopieren
  • 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
    Nach dem Login kopieren
  • 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("<h1>\nHello world!\n</h1>\n"))
        })
    
        log.Printf("Go http Server listen on :8080")
        log.Fatal(http.ListenAndServe(":8080", nil))
    }
    Nach dem Login kopieren

    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
    Nach dem Login kopieren

    Testcode

    $http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);
    
    $http->set([
        &#39;worker_num&#39; => 4,
    ]);
    
    $http->on(&#39;request&#39;, function ($request, swoole_http_response $response) {
        $response->header(&#39;Last-Modified&#39;, &#39;Thu, 18 Jun 2015 10:24:27 GMT&#39;);
        $response->header(&#39;E-Tag&#39;, &#39;55829c5b-17&#39;);
        $response->header(&#39;Accept-Ranges&#39;, &#39;bytes&#39;);    
        $response->end("<h1>\nHello Swoole.\n</h1>");
    });
    
    $http->start();
    Nach dem Login kopieren

    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!

  • Verwandte Etiketten:
    Quelle:csdn.net
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage