- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我对以Django为基础的网站的性能丝毫不满意,它的访问量并没有增加,到目前为止,每天的访问量超过1000。
我很好奇它如何应付繁忙的交通高峰,所以我使用了ab工具进行一些基准测试。
我注意到并发大于1时的性能提供了与1个并发连接相同的请求量。
请求数是否应该随并发性增加?
我在具有1 GB RAM,apache2(prefork),mod_wsgi,memcached和mysql的虚拟机上。
页面上的所有内容均已缓存,数据库未受到任何点击。而且,如果memcached会删除该条目,则只有2个轻量(索引)查询-应该立即重新缓存。
基准测试数据:(注意:我确实用2000和1万个请求进行了基准测试,结果相同)
对于起始页面,由django通过apache2/mod_wsgi提供:
-n100 -c4:http://dpaste.com/97999/(58.2请求/秒)
-n100 -c1:http://dpaste.com/97998/(57.7请求/秒)
对于robots.txt,直接从apache2:
-n100 -c4:http://dpaste.com/97992/(4917请求/秒)
-n100 -c1:http://dpaste.com/97991/(1412请求/秒)
这是我的Apache conf:http://dpaste.com/97995/
编辑:添加了更多信息
wsgi.conf:http://dpaste.com/98461/
mysite.conf:http://dpaste.com/98462/
我的wsgi处理程序:
import os, sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
最佳答案
在嵌入式模式下使用带有许多进程的prefork MPM和mod_wsgi时,您可能会破坏包装盒的性能。首先,建议您阅读:
http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html
使用像您一样的嵌入式模式,您需要仔细调整MPM参数。将MaxRequestsPerChild设置为非零不是一个好的开始,因为您将定期强制执行Apache进程,结果将导致负载高峰,因为必须重新加载所有内容。
建议使用MPM并在mod_wsgi守护程序模式下运行Python Web应用程序。首先,这将减少运行的进程,减少内存开销,并为系统性能提供更多的可预测性。然后可以开始更仔细地研究为什么事情运行速度变慢。
要注意的一件事是您在“ab”输出的以下部分中所获得的内容:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 0 0 0.2 0 2
Waiting: 0 0 0.1 0 2
Total: 0 0 0.2 0 2
关于django - Django中的并发性能(apache2 prefork/mod_wsgi),我在做什么错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1475960/
大中型 python WSGI 应用,Apache + mod_wsgi 还是 Nginx + mod_wsgi 用什么? 哪种组合需要更多的内存和 CPU 时间? 哪个更快? 哪个以比另一个更稳定而
我通过 python CGI 脚本 (Apache2.4) 继承了在 AWS EC2 Windows 实例和 WAMP 服务器上运行的 Web 应用程序。我希望将 Web 应用程序转换为 Flask,
当我输入: [root@lts5 /]# ldd /usr/lib64/httpd/modules/mod_wsgi.so libpython2.5.so.1.0 => /root/epd-5
我正在尝试在 Ubuntu 16.04.6 服务器上部署带有 Apache2 和 mod_wsgi 的 Django 应用程序,但我正在努力让 mod_wsgi 使用正确的 python 版本。 我从
介绍 我有一个用 python 3 编写的 Web API,它使用 flask 。当我从终端运行 Web API 时,代码运行良好,它托管在代码的以下行中。 if __name__ == '__mai
我的 Django 项目中的 MemoryError 有一个奇怪的问题。 Ubuntu 11 Apache 2 Nginx mod_wsgi python2.7 我有一个使用 PIL 调整图像大小的模
在这里撕扯我的头发试图弄清楚为什么我的两个 Django 项目没有被分开提供......似乎首先访问的静态文件成为两个项目的事实上的静态文件,或者类似的东西。 我试图通过同一个 IP 地址的两个域名为
我正在通过发出一个需要 30 多分钟才能完成的请求来测试在 Apache Web 服务器上运行的 Python Flask Web 应用程序的限制。该请求需要向 MySQL 数据库发送数千个数据库请求
有谁知道如何制作mod_wsgi当任何模块更改时自动重新加载 Flask 应用程序?我试过WSGIScriptReloading On ,但没有运气。 official documentation有点
使用 mod_wsgi 部署应用程序时出现以下错误 [Thu Apr 07 11:23:32 2011] [error] [client localhost] IOError: [Errno 13]
我有用 Django 开发的普通内容管理网站。我的客户有一个具有 256 MB RAM 的服务器。他想以 wsgi 模式部署此站点。 256 MB RAM 是否足够?我对服务器 RAM 要求等一无所知
我对 Python 和 Python Web 应用程序开发比较陌生。目前我正在使用 mod_wsgi 在 Python 中创建一个 hello world 应用程序 这是我的配置。 Apache 配置
我有一个 wsgi 应用程序作为 mod_wsgi 守护进程(在守护进程模式下)运行。我的设置是每个守护进程在 1000 个请求后重新启动,如 mod_wsgi 配置指南中所示: http://cod
我在centos系统上安装了Postgres、mod_wsgi和python3.5。我已经测试了连接,它在交互式 Python shell 和开发应用程序中都运行良好(它是一个 Pyramid 应用程
我在 Centos 6 服务器上使用 Python Flask,mod_wsgi 突然不能工作了。 这是错误信息。 mod_wsgi (pid=6206): Target WSGI script '/
我一直在研究在运行 Python/mod_wsgi 的网络场中创建快速缓存的不同系统。 Memcache 和其他是选项......但我想知道: 因为我不需要跨机器共享数据,希望每台机器都维护一个本地缓
我在 apache2 上运行 mod_wsgi。它正在运行 Django,出于某种原因,在我更改代码后,旧版本有时会与新代码一起显示。 例如,在创建一个仅返回带“Hi”的 Http 响应的 View
当我尝试安装 mod_wsgi 时遇到以下错误 ./configure checking for apxs2... no checking for apxs... /usr/sbin/apxs che
我正在使用 Hostgator 开发 Linux Centos 虚拟主机。我使用的是 httpd 版本 2.2.15。 我使用标签 --with-python=/usr/local/bin/pytho
我使用 CherryPy、Apache 和 mod_wsgi 构建了一个网站,除了一个问题之外,一切都很好。当用户操作要求自动发送电子邮件时,我有时会使用 os.fork ,以便父进程可以立即返回并向
我是一名优秀的程序员,十分优秀!