我們使用django爲mysql創建一個json webservice前端。我們在EC2實例上運行apache和django,並在RDS實例上運行MySQL。我們已經開始使用Apache Bench進行性能基準測試,並且獲得了一些非常糟糕的性能數據。我們還注意到,在運行測試時,我們的apache/django實例在非常低的負載下達到100%CPU使用率,並且MySQL實例永遠不會超過2%CPU使用率。有沒有辦法加快django中的身份驗證功能?
我們正在努力使這個意義上說,孤立的問題,所以我們做了幾個AB測試:
- 一種從Apache的靜態HTML頁面的請求 - 〜2000個請求/秒。
- 一個在django中執行一個小型python函數的請求,沒有db交互 - 約1000個請求/秒。
- 執行我們調用驗證Django的web服務的功能之一,然後做一個非常簡單的查詢來從一個表中記錄的請求 - 11個請求/秒
- 同3,但評論的電話進行驗證 - - 95個請求/秒。
爲什麼驗證太慢?它是否將數據寫入數據庫,找到pi的十億位數字,是什麼?
我們希望保持呼叫在這些功能中進行身份驗證,因爲我們不希望任何人都可以猜測這些URL,等等。有沒有人注意到身份驗證速度很慢,任何人都可以提出建議一種補救方法?
非常感謝!
嘗試幾件事:下載django-debug-toolbar並讀取輸出。看看它在做什麼樣的查詢。試試django-profile並閱讀函數執行時間。最後,獲取新的...甚至免費版本將顯示你有用的細分每個視圖func。興奮地聽到一些結果! –