純python實現的web: tornado效能測試

來源:互聯網
上載者:User
測試環境: 

伺服器配置: 4 x Intel(R) Xeon(R) CPU E5405  @ 2.00GHz, 4G記憶體, 作業系統: CentOS 5.3 x86_64

nginx前端 + 4 tornado(0.2) web process

tornado: http://www.tornadoweb.org (已被牆)

測試情境:

http get請求,伺服器端直接返回"hello world"

代碼及nginx配置:

main.py:

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""web main"""

from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, Application, authenticated

#from rockps.auth import AuthHandler

class MainHandler(RequestHandler):
    def get(self):
        self.write("hello world")
        
settings = {
}

application = Application([
    (r"/", MainHandler),
], **settings)

if __name__ == "__main__":
    http_server = HTTPServer(application)
    http_server.listen(8081)
    IOLoop.instance().start()

 

nginx.conf:

 

user root;
worker_processes 1;

error_log /var/nginx_error.log;
pid /var/run/nginx.pid;

events {
    worker_connections 51200;
    use epoll;
}

http {
    # Enumerate all the Tornado servers here
    upstream frontends {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
        server 127.0.0.1:8083;
        server 127.0.0.1:8084;
    }

    #include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access22.log;

    keepalive_timeout 65;
    proxy_read_timeout 200;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;              
    gzip_types text/plain text/html text/css text/xml
               application/x-javascript application/xml
               application/atom+xml text/javascript;

    # Only retry if there was a communication error, not a timeout
    # on the Tornado server (to avoid propagating "queries of death"
    # to all frontends)
    proxy_next_upstream error;

    server {
        listen 8085;

        # Allow file uploads
        client_max_body_size 50M;

        location ^~ /static/ {
            root /var/www;
            if ($query_string) {
                expires max;
            }
        }
        location = /favicon.ico {
            rewrite (.*) /static/favicon.ico;
        }
        location = /robots.txt {
            rewrite (.*) /static/robots.txt;
        }

        location / {
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends;
        }
    }
}

 

測試結果:

點擊率可以超過7000,但後面再加使用者開始往下掉,請求開始出錯,最合適的時候大概3500個使用者

持續運行後,串連數穩在1萬。

 

結論,2個字: 

 

牛X

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.