在OpenShift上使用mod_wsgi时Flask运行缓慢

0 投票
2 回答
513 浏览
提问于 2025-04-17 14:07

我在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来进一步调查。

撰写回答