2016-04-04 185 views
1

我有一個基本(小)層Azure Web應用程序在西歐託管在同一地區的基本SQL數據庫。始終打開。請注意,我的網站的目標受衆是在歐洲。Azure web應用程序緩慢服務器響應時間

請注意,該網站是CodeIgniter的基礎上運行php 5.6

即使在本地環境中一切都很快,頁面加載確實很慢。在我的網站上運行PageSpeed Insights後,我得到了如下評價:

減少服務器的響應時間 在我們的測試中,服務器1.7秒內做出響應。有很多因素會降低您的服務器響應時間。請閱讀我們的建議,瞭解如何監控和測量服務器花費的最多時間。

當從developer tools檢查網站,我收到了類似的景象: enter image description here

正如你可以看到最初的反應是非常糟糕的。可能是什麼問題呢?

UPDATE /解決方案

從意見考慮的Gary Liu - MSFT的建議,即允許在database.php頁面的加載時間下樓0.23pconnect,這是一個〜8倍改善。

+0

這是因爲你的SQL數據庫。一個基本的SQL數據庫很慢。您可以將SQL數據庫擴展爲標準,或者如果您的應用程序相對靜態,則可以使用Redis緩存。 –

+0

我認爲它是不正確的以推斷出事實的結論 – TheGameiswar

+0

將數據庫升級到標準後,延遲降低到1.4。考慮到我對[西歐數據中心](http://www.azurespeed.com/)的延遲大約爲100毫秒,這是非常微小的變化。我如何測量Web應用程序和數據庫之間的延遲? – Pio

回答

0

在CI框架中,如果您正在運行prod應用程序,我們可以在config/database.php中將pconnect設置爲true以使用到數據庫的持久連接。這可以減少初始連接的延遲。順便說一句,如果你正在運行一個測試或開發應用程序,我們需要認真對待這個設置,因爲它可能會導致一些意想不到的問題。您可以參考Advantages/Disadvantages of pconnect option in CodeIgniter的答案獲取更多信息。

2

我發現實體框架是長初始(冷啓動)響應的罪魁禍首。從超時禁用IIS沒有幫助,我認爲必須有某種EF pooling \ memory超時未公佈。

您可以關閉數據庫版本控制的一些EF檢查,並嘗試使用預編譯視圖有一點幫助。在Azure連接到預製數據庫時,我仍然非常不滿意EF的啓動時間。預先啓動時間大約爲1秒,但我沒有做任何事情可以在約10-12秒的預啓動時間內啓動我的雲。我已經得出結論,在網絡上有很多網絡開銷,我懷疑使用Azure SQL也會帶來很多網絡開銷,因爲它是面向公衆的。

+0

好點,但代碼是在PHP 5.6中,我將更新問題和代碼。 – Pio

相關問題