六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 509|回复: 0

纯python实现的web: tornado性能测试

[复制链接]
 楼主| 发表于 2012-12-19 18:35:07 | 显示全部楼层 |阅读模式
测试环境: 服务器配置: 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:

[url=][/url]
#!/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()
[url=][/url]


nginx.conf:

[url=][/url]
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;
        }
    }
}
[url=][/url]


测试结果:

点击率可以超过7000,但后面再加用户开始往下掉,请求开始出错,最合适的时候大概3500个用户

持续运行后,连接数稳在1万。

结论,2个字:
牛X
本文转载自:http://www.cnblogs.com/fengmk2/a ... 8/tornado-test.html



该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表