>  기사  >  백엔드 개발  >  PHP7+Swoole/Nginx/Golang 성능 비교 소개

PHP7+Swoole/Nginx/Golang 성능 비교 소개

coldplay.xixi
coldplay.xixi앞으로
2021-02-18 17:59:503142검색

PHP7+Swoole/Nginx/Golang 성능 비교 소개

권장(무료): PHP7

QPS 비교

Apache 벤치 도구를 사용하여 Nginx 정적 페이지, Golang Http 프로그램, PHP7+Swoole Http 프로그램을 스트레스 테스트하세요. 동일한 시스템에서 100만 개의 동시 HTTP 요청에 대한 벤치마크 테스트에서 QPS 비교는 다음과 같습니다. 1.4 .6(우분투)

Golang166838.68go 버전 go1.5.2 linux/amd64PHP7+Swoole287104.12swoole- 22-알파Nginx-1.9. 9245058.70nginx/1.9.9참고: Nginx-1.9.9 테스트에서 access_log가 꺼지고 open_file_cache가 활성화되어 정적 파일을 메모리에 캐시합니다자세히 알아보기 테스트 세부 정보 과거 테스트 데이터: Nginx/Golang/Swoole/Node.js테스트 환경의 성능 비교CPU: Intel® Core™ i5-4590 CPU @ 3.30GHz × 4메모리: 16G
디스크: 128G SSD

운영 체제: 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;
}
테스트 페이지
    4a249f0d628e2318394fd9b75b4636b1Hello World!473f0a7621bec819994bb5020d29372a
  • 프로세스 수
  • Nginx에서 4개의 작업자 프로세스를 열었습니다
  • 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("4a249f0d628e2318394fd9b75b4636b1\nHello world!\n473f0a7621bec819994bb5020d29372a\n"))
        })
    
        log.Printf("Go http Server listen on :8080")
        log.Fatal(http.ListenAndServe(":8080", nil))
    }
    PHP7+Swoole

    PHP7에는

    가속기가 활성화되어 있습니다. .

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

    관련 무료 학습 권장사항:

    php 프로그래밍

    (동영상)

    위 내용은 PHP7+Swoole/Nginx/Golang 성능 비교 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

  • 성명:
    이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제