Python Django网站性能下降
好吧,我想解释一下我的django小问题,我在四处走动时遇到了麻烦 问题 我有一个小网站,只有几个页面显示数据库记录列表。该网站是我公司的内部渲染场监视器,在任何时候都可能有十几个或两个活动连接。不超过50 问题是,我有三个更新服务,它们在打开时会导致真正的性能下降 每个更新服务都是python脚本,它们:Python Django网站性能下降,python,django,performance,wsgi,gunicorn,Python,Django,Performance,Wsgi,Gunicorn,好吧,我想解释一下我的django小问题,我在四处走动时遇到了麻烦 问题 我有一个小网站,只有几个页面显示数据库记录列表。该网站是我公司的内部渲染场监视器,在任何时候都可能有十几个或两个活动连接。不超过50 问题是,我有三个更新服务,它们在打开时会导致真正的性能下降 每个更新服务都是python脚本,它们: 使用urllib2向url发出http请求 等待回应 将带有时间戳的成功消息打印到日志中 等待10秒钟,然后重新开始 他们发送请求以使my django网站轮询外部服务并将新数据读入djan
- (每次更新大约需要5-15秒)
- (每次更新大约需要25-45秒)
- (每次更新大约需要5-15秒)
-b本地主机:80001
-u农民
-t 600
-g
--最多请求10000个
-n bb_网络网格
-w 17
-p/var/run/gunicorn\u bb\u webgrid.pid
-D
--日志文件/xfs/GridEngine/bbgrid\u log/bb\u webgrid.log
wsgi:应用程序
此站点的Apache配置:
<VirtualHost *:80>
ServerName webgrid.<INTERAL_COMPANY_URL>
ServerAlias webgrid
SetEnv force-proxy-request-1.0 1
DocumentRoot /xfs/GridEngine/bb_webgrid/www
CustomLog logs/webgrid_access.log combined
ErrorLog logs/webgrid_error.log
#LogLevel warn
<Directory "/xfs/GridEngine/bb_webgrid/www">
AllowOverride All
</Directory>
WSGIDaemonProcess webgrid processes=17 threads=17
WSGIProcessGroup webgrid
</VirtualHost>
服务器名webgrid。
ServerAlias webgrid
SetEnv force-proxy-request-1.0 1
DocumentRoot/xfs/GridEngine/bb_webgrid/www
CustomLog日志/webgrid\u access.log组合
ErrorLog日志/webgrid\u error.log
#日志级别警告
允许超越所有
WSGIDaemonProcess webgrid进程=17个线程=17
WSGIProcessGroup webgrid
这种事情不应该在网上做;通过点击一个指向某个视图的URL,您就不必要地捆绑了您的Web服务器,这会阻止它完成其真正的工作,即响应用户请求
相反,请在带外执行此操作。一个真正快速简单的方法是写一个;这样,您就可以轻松地从命令行脚本调用模型方法。现在,您可以简单地将您的cron作业或其他任务指向调用这些命令,而不是调用单独的Python脚本来调用站点上的URL
另一种选择是使用芹菜;对于执行长时间运行的异步任务来说,这是一个非常好的系统。它甚至有自己的调度系统,因此您可以完全替换cron作业。这种事情不应该在线完成;通过点击一个指向某个视图的URL,您就不必要地捆绑了您的Web服务器,这会阻止它完成其真正的工作,即响应用户请求 相反,请在带外执行此操作。一个真正快速简单的方法是写一个;这样,您就可以轻松地从命令行脚本调用模型方法。现在,您可以简单地将您的cron作业或其他任务指向调用这些命令,而不是调用单独的Python脚本来调用站点上的URL
另一种选择是使用芹菜;对于执行长时间运行的异步任务来说,这是一个非常好的系统。它甚至有自己的调度系统,因此您可以完全替换cron作业。不太清楚您在这里说的是什么。你的Django应用程序中有一些东西(什么?)碰到了一个URL,而这个URL又会联系到一个外部服务——是吗?不太清楚你在这里说的是什么。你的Django应用程序中有一些东西(什么?)碰到了一个URL,而这个URL又会联系到一个外部服务-是吗?谢谢,我现在就来研究实现这个。谢谢,我现在就来研究实现这个。
<VirtualHost *:80>
ServerName webgrid.<INTERAL_COMPANY_URL>
ServerAlias webgrid
SetEnv force-proxy-request-1.0 1
DocumentRoot /xfs/GridEngine/bb_webgrid/www
CustomLog logs/webgrid_access.log combined
ErrorLog logs/webgrid_error.log
#LogLevel warn
<Directory "/xfs/GridEngine/bb_webgrid/www">
AllowOverride All
</Directory>
WSGIDaemonProcess webgrid processes=17 threads=17
WSGIProcessGroup webgrid
</VirtualHost>