2017-04-26 158 views
1

生产服务器我的工作被推到执行比我的本地开发环境,其中一切运行快速和平稳,所以我不知道我做出的任何更改可能会或可能不会有生产中的糟糕表现。Django:如何模拟慢速服务器?

在该服务器中,响应需要很长时间,主要是因为数据库查询而不是服务器的处理能力和内存容量。

我想知道是否有任何方法可以设置服务器配置来模拟这些糟糕的情况:如何降低本地Django服务器的功耗,以便响应时间更长,处理能力更低,最重要的是数据库连接速度慢吗?

我希望这不是一个疯狂的问题,但这是我真的需要弄清楚我的代码将如何在生产中表现出来,因为我无法从我的本地环境中告诉它。

+0

如果您认为它是您的数据库,则可以尝试查找最慢的查询; [postgres](https://dba.stackexchange.com/questions/92071/get-statistics-of-slow-running-queries)或[mysql](https://dev.mysql.com/doc/refman/5.7 /en/slow-query-log.html)。 – castis

+0

@castis它不是我的**数据库,它是生产的,我无法访问或控制它。 – dabadaba

+0

您可以花费多长时间查询一次返回多少次,获得平均值,然后在您的版本中进行睡眠以模拟延迟。 – Jacobr365

回答

1

正如上面的一些意见所示,您可以通过执行this answer建议的步骤来减慢开发服务器的速度。

如果您怀疑数据库,你可以改变db/models/query.pyQuerySet方法Django的代码,并添加这样的:

from time import sleep 
sleep(0.5) # this is seconds, not milliseconds ;) 

,但是这一切都是猜测。

您可以在您的代码中设置类似opbeat的东西,以获取有关您的代码的实际生产信息,以便您可以计算出问题的真正目的(并加快生产速度而不是减慢开发速度!)。

对于您的本地开发环境,您还可以尝试django-silk以了解您的代码运行的查询次数。