如何在uWSGI下对Django应用程序进行性能分析?

6
我正在尝试对在下运行的django应用程序进行分析。 Linesman 看起来很有趣,但我不知道如何使用它。是否有人能提供详细的说明以解决这个问题?或者为我指引一些更好的文档解决方案?
编辑:这里和其他地方有许多帖子讨论特定视图、django的ORM等的分析。这不是我想要的。我试图看看为什么这个<强>应用程序+django+uwsgi堆栈在特定硬件平台上很慢。由于我找到的几乎所有内容都只对django的部分进行了分析,或者似乎需要使用特定命令行运行相关代码,所以我感到困惑。我需要针对这个特定堆栈的“傻瓜式”具体说明。
编辑2:我在一个GPLv3项目上无偿工作。因此,除非您也知道我如何黑掉我的银行余额 :),否则我将坚持FOSS解决方案。
3个回答

2
有点晚了,但我终于部分地让linesman工作了,遵循 linesman文档页面上的Django笔记。只需将链接页面上显示的必要代码添加到wsgi.py中,并启动uwsgi服务器。之后,转到带有profiler路径的Django实例的URL。例如,当您在http://example.com:8000/上运行Django时,请转到http://example.com:8000/__profiler__。需要注意的是,linesman的文档始终假定服务器在端口5000上运行,而我最初认为它会在端口5000上创建自己的小型Web服务器,但显然并非如此 :)

这是一个不错的项目,但它已经不再维护了。仅部分按照此处所述工作。 - bryanph

0

您可能想考虑使用New Relic。

http://blog.newrelic.com/2011/11/08/new-relic-supports-python/

除了针对性的仪器,包括对Django的特殊支持,最近还增加了低开销的线程分析机制。开销足够低,甚至可以在生产系统中使用。

Example thread profiling session results.


更新1

建议使用New Relic的原因是它相对容易安装和运行,即使在uWSGI上也是如此。

对于您不想花任何钱的情况,它有一个免费试用期为2-4周,具体取决于您通过何种方式注册以及是否尝试申领免费T恤或其他促销活动,例如免费RC直升机。即使在试用期之后,它仍然会回到Lite订阅级别,这不需要持续的资金支出,但仍然提供了相当多的详细信息。


很棒的图片。但我所要求的是有关uwsgi + django堆栈的具体帮助。您能否请详细解释一下在这种特定情况下如何提供帮助? - justinzane
虽然我之前没有提到过,但商业解决方案并不适合这种情况。请参见编辑2。谢谢你的关注。 - justinzane

-1

1
我看到了。我之所以问是因为我需要具体的帮助来确定如何完成这个任务。比如在uwsgi.ini中添加哪些确切的行等。 - justinzane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接