在OpenShift上使用mod_wsgi时Flask运行缓慢
我在openshift上运行的Flask应用程序遇到了一些性能问题。
我需要从数据库中获取一些图片并在网页上显示。为此,我创建了一个简单的方法:
@app.route('/getImage/')
def getImageFromUrl(url=None):
return make_response(getImageFromDb(request.args['url']));
每个页面最多显示10张图片。但问题是,这个过程很慢……非常慢。
在我的本地机器上,使用app.run()(即使是在调试模式下)运行时速度非常快,所以我猜测mod_wsgi可能出了问题。
此外,日志文件中还有这些错误信息:
Exception KeyError: KeyError(140116433057760,) in <module 'threading' from '/usr/lib64/python2.6/threading.pyc'> ignored
还有
[error] server reached MaxClients setting, consider raising the MaxClients setting
发生了什么?我该怎么做才能加快速度呢?
2 个回答
0
出现KeyError错误通常是因为你使用的mod_wsgi版本太旧了。建议使用mod_wsgi 3.3或更高版本,因为这个版本做了一些调整,以适应Python中的变化,这些变化导致了这个错误。
0
我猜Exception KeyError
这个错误是由gevent引起的,问题里应该有更多的代码内容 :) 为了避免这个错误,建议在所有代码之前先导入gevent
。
server reached MaxClients setting
这个提示看起来是Apache服务器的错误,需要查看日志和设置中的MaxClients和ServerLimit来进一步调查。