2015-01-12 34 views
1

我們的主網站遠程訪問我們在不同域名託管的其他網站的數據庫。我的問題是我們的主網站在加載頁面時速度很慢,而第二個網站沒有遇到我們主網站的問題(數據庫位於我們的第二個網站上)。共享一個數據庫的兩個網站的加載時間增加

爲什麼我們在我們的主網站上遇到這個問題? 可能的原因是什麼? 對此可能的解決方案是什麼?

編輯: 我們只是將其他域名轉移到我們主網站的同一主機上。 也許問題是兩個託管之間的數據庫身份驗證過程。

+1

因此,網站A在環境B中從數據庫加載數據時速度較慢,但​​網站B(也是環境B)沒有相同的問題?難道不僅僅是因爲它在不同的域中,數據庫傳輸時間更長嗎? – Liath

回答

0

這是一個非常非常寬泛的問題 - 我只能給出一般性建議。

我會從確保緩慢的網站被正確寫入開始。在受控制的開發環境中運行網站,並提供生產數據庫的副本,並使用Apache JMeter等工具加載它;確保它在該環境中「快速」。 「快速」是一個可移動的概念,但我預計會看到幾百個併發用戶的亞秒級響應時間。 如果網站在這方面很慢,它的生產速度會很慢;找出瓶頸在哪裏,調整,優化等。

如果這不是問題,我會複製該設置與其他網站連接到同一個數據庫,並同時拋出負載在這兩個網站。您可能剛剛達到了系統的可伸縮性限制,並且您可能會看到與此相關的性能問題 - 如果第一個網站的響應速度很快,而第二個網站的響應速度不快,但可能會遇到死鎖或其他併發問題。

如果網站在「完美」基礎架構上表現良好,但在生產中表現不佳,則需要確定生產中的問題。最好的方法是在生產環境中使用分析器;這可能意味着創建一個不公開的網站副本,並在那裏安裝profiler。 XDebug很適合PHP。 分析器將顯示你的應用程序放慢的位置;它可能在PHP代碼中,它可能在認證部分,它可能正在執行SQL查詢。

一旦分析器告訴你問題出在哪裏,你可以研究如何解決它。然而,作爲一個經驗法則,在單個網絡籠外運行數據庫查詢是一個可怕的想法;它並不安全,它將數據庫查詢暴露給任意的網絡性能問題,並且會吞噬您的帶寬分配。與「www.company.com」意義上的域名不同,一個託管環境可以運行多個域名,但是如果您通過公共互聯網路由數據庫流量,則會放棄對性能的任何控制。

+0

感謝您的回答。我會嘗試使用xdebug .. tnx的建議:) –