上一篇
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的东西了。
分享到:
相关推荐
Ubuntu 12.04 下安装 Nginx、Python、uWSGI 和 Django 的步骤 在本文中,我们将介绍如何在 Ubuntu 12.04 环境下安装 Nginx、Python、uWSGI 和 Django。这些技术栈组合是非常流行的 Web 应用程序开发环境。 一、...
总结来说,离线部署uwsgi和nginx需要提前下载所有相关软件的源码包,然后在目标机器上进行编译和安装。配置uwsgi和nginx以适应Django项目的需求,并确保所有依赖项已安装完毕。这种方式虽然较为繁琐,但在网络受限或...
Nginx+Uwsgi+Django(python3)+Vue部署,一步步实现。网上找了N多篇文章都没成功,特意记录,以免其他同学踩坑
五步教你实现使用Nginx+uWSGI+Django方法部署...本文主要介绍了使用Nginx+uWSGI+Django方法部署Django程序的五个步骤,包括环境介绍、安装uwsgi、测试uwsgi、配置Django和连接Django和uwsgi,实现简单的WEB服务器。
文章提到的CentOS、Nginx、UWSGI和Django的组合,为开发者提供了一个强大的解决方案,尤其适合处理高负载、高并发的Web应用需求。正确的安装、配置和优化这些组件,可以使Web应用提供快速、稳定的服务。
测试 Uwsgi 是否安装成功: 1. 新建一个 uwsgiTest.py 文件,代码如下: ``` # -*- coding:utf-8 -*- def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return ...
Nginx + uwsgi + web.py 搭建web服务器, 也包含一整套python服务器后台框架代码,简单方便,容易搭建。
在构建高性能的Web应用时,Django作为Python的主流Web框架,经常与Nginx和uWSGI结合使用。Nginx是一个强大的反向代理服务器,用于处理静态资源和HTTP请求分发,而uWSGI则是一个应用服务器,能够高效地运行Django应用...
同时,还需要安装Nginx、virtualenv和uWSGI。Nginx版本为1.10.3,virtualenv版本为15.1.0,uWSGI版本为*.*.**.*。 安装项目环境的步骤如下: 1. 首先,安装virtualenv来创建虚拟环境: ``` sudo apt-get install...
在Web开发领域,部署Django应用通常会选择高性能的服务器组合,如Nginx和uWSGI。本篇文章将详述如何解决使用Nginx和uWSGI部署Django应用过程中遇到的问题。 首先,Nginx是一个轻量级的HTTP服务器和反向代理服务器,...
内容概要:文档主要介绍了在CentOS系统上进行Django、Nginx和uwsgi的完整安装流程,涵盖了环境搭建的基本操作,如开发工具的安装、依赖包的安装、各组件的单独安装以及最终配置整合的部分。文档提供了一步步的具体...
首先,确保你的CentOS系统已经安装了EPEL(Extra Packages for Enterprise Linux)仓库,因为Nginx和uWsgi不在默认的CentOS仓库中。你可以通过以下命令安装EPEL: ```bash sudo yum install epel-release -y ``` ...
如果遇到502 Bad Gateway错误,可能是uWSGI和Nginx之间的通信问题,检查uWSGI的日志和Nginx的error.log以找出原因。 10. **优化与监控**:根据实际需求调整uWSGI的工作进程数量、线程数等参数,以优化性能。同时,...
- 查看日志:通过`tail -f`命令监控uWSGI和Nginx的日志,确认请求被正确分发。 9. **Nginx常用命令** - 启动:`service nginx start` - 停止:`service nginx stop` - 重启:`service nginx restart` - 检查...
我们将使用Django、Nginx、uWSGI和SimpleUI这些技术,并且会详细解释每个组件的作用以及配置过程。 首先,Django是一个Python开发的高级Web框架,用于构建高效、可扩展的Web应用。而uWSGI是一个高性能的应用服务器...
# uwsgi和nginx通讯的Unix socket socket = /www/wwwroot/drf_orginazation/script/uwsgi.sock # 对外提供服务的IP地址和端口 http = 10.160.6.227:8000 # 并行任务数 workers = 5 # 静态文件目录 static-...