2017-04-26 73 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以瞭解您的代碼運行的查詢次數。