设为首页 收藏本站
查看: 476|回复: 0

[经验分享] nginx,uwsgi,bottle,mako安装和性能测试

[复制链接]

尚未签到

发表于 2016-12-27 08:13:35 | 显示全部楼层 |阅读模式
上一篇 nginx,uwsgi,bottle,virtualenv在centos6上安装及性能测试 测试了nginx,uwsgi和bottle的性能
这篇继续测试一下mako模板性能
1、安装mako

tar -zvxf Mako-0.5.0.tar.gz
cd Mako-0.5.0
python setup.py install


2、修改上篇nginx配置文件
/usr/local/nginx/conf/nginx.conf

worker_processes 8; #24线程cpu,8个nginx,16个uwsgi
events {
worker_connections  10240;
}
http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;
server {
listen      80;
charset     utf-8;
root        /application/venv/bottletest;
server_name cow.com;
location / {
include uwsgi_params;
uwsgi_param UWSGI_PYHOME /application/venv/bottletest;
uwsgi_param UWSGI_CHDIR /application/venv/bottletest;
uwsgi_param UWSGI_SCRIPT hello; # 对应hello.py
uwsgi_pass  127.0.0.1:8888;
}   
location ^~ /static {
root /application/venv/bottletest;
access_log off;
}   
location /status {
stub_status on;
access_log  off;
}
}  
}


3、修改配置uwsgi的xml格式配置文件
/usr/local/uwsgi/bottletest.xml

<uwsgi>
<socket>127.0.0.1:8888</socket>
<home>/application/venv/bottletest</home>
<chdir>/application/venv/bottletest</chdir>
<python-path>/application/venv/bottletest</python-path>
<module>[WSGI Script (hello)]</module>
<limit-as>256MB</limit-as>
<processes>16</processes> <!-- 进程数 -->
<master/>
<memory/>
<logto>/usr/local/uwsgi/logs/bottletest.log</logto>
<daemonize>/var/log/uwsgi.log</daemonize>
<max-requests>10000</max-requests>
</uwsgi>


4、编辑python文件
/application/venv/bottletest/hello.py

from bottle import route, run, mako_view, default_app
@route('/hello/template/:names')
@mako_view('hello.html')
def template_hello(names):
names = names.split(',')
return dict(title='Hello World', names=names)
if __name__ == "__main__":
run(host="192.168.0.90", port=8080)
else:
application = default_app()


5、编辑mako模板文件
/application/venv/bottletest/view/index.html

<html>
<head>
<title>${title}</title>
</head>
<body>
%for name in names:
<p>Hello, <strong>${name}</strong></p>
%endfor
</body>
</html>


6、启动nginx和uwsgi

/usr/local/nginx/sbin/nginx
/usr/local/uwsgi/uwsgi -x /usr/local/uwsgi/bottletest.xml


7、测试访问结果

lynx --source http://192.168.0.90/hello/template/123,234,2343,21,adead,sa2221
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Hello, <strong>123</strong></p>
<p>Hello, <strong>234</strong></p>
<p>Hello, <strong>2343</strong></p>
<p>Hello, <strong>21</strong></p>
<p>Hello, <strong>adead</strong></p>
<p>Hello, <strong>sa2221</strong></p>
</body>
</html>


webbench模拟1000客户端测试,系统负载在3-4之间

./webbench -t 30 -c 1000 'http://192.168.0.90/hello/template/123,234'
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.0.90/hello/template/123,234
1000 clients, running 30 sec.
Speed=1202950 pages/min, 6295417 bytes/sec.
Requests: 601473 susceed, 2 failed.


webbench模拟5000客户端测试,系统负载在4左右

./webbench -t 30 -c 5000 'http://192.168.0.90/hello/template/123,234'
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.0.90/hello/template/123,234
5000 clients, running 30 sec.
Speed=1313490 pages/min, 6872361 bytes/sec.
Requests: 656595 susceed, 150 failed.


总结
性能能够支持生产环境,cheetah的性能和mako差不多,但文档有些乱,且似乎不太活跃。
nginx+uwsgi+bottle+mako还是很不错的选择,由于数据库使用mongodb和redis,就不在测试ormapping的东西了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-319901-1-1.html 上篇帖子: nginx proxy_pass location 为正则表达式的问题 下篇帖子: nginx 解决400 bad request 的方法(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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