2014-02-11 142 views
3

有我與現在面臨的一個大問題非常緩慢引導 - symfony的需要7-10sec來引導。一些研究表明,這是因爲symfony在開始時會產生大量文件夾雜。Symfony2的 - 在共享主機

在我的本地機器上,我可以通過在php.ini中增加realpath_cache_size設置來修復它,但是在共享主機上這不起作用(因爲open_basedir限制有效,php在這種情況下禁用實際路徑緩存)。

現在我堅持爲obviosly應用程序與如此龐大的引導延遲使用。 有沒有人有這個問題..我該如何解決它?

+0

會出現這種情況只有你清理緩存或在每次請求後的第一次?你使用DEV還是PROD環境? –

+0

這是對每個請求,產品環境 –

+0

首先要檢查的是DEV env日誌文件。我在共享主機上使用Sf2.0.x和Sf2.3.x,並且網站很少加載1s。你對每個請求都做了什麼重邏輯? –

回答

3

有很多方法都固定symfony的引導。

一些提示:

  • 確保您使用「刺」的環境(生產設置:調試和分析禁用緩存啓用,那麼詳細的日誌),
  • 在高QPS,不要」 T選用默認的PHP會話處理程序,它使用用戶的會話文件的文件鎖定,從而拒絕parralelized查詢(如果你使用Ajax很多它可以傷害了很多),
  • 使用的文件系統可以爲高速緩存相當緩慢(尤其是在共享主機上):將緩存目錄放在tmpfs掛載點下或覆蓋緩存後端以便使用某些東西例如文件系統(請參閱http://nerdpress.org/2012/07/10/caching-data-in-symfony2)。

請參見下面的清單涵蓋的Symfony2應用deployement的基本生產: http://www.symfony2-checklist.com/

+0

包括*使用文件系統可以說是相當緩慢的*請提供一個解決方案,或者至少一個建議。 –

+0

通常,我爲緩存目錄創建一個tmpfs掛載點,但您可以覆蓋緩存後端並使用(例如)memcache。 本文將向您展示您可以做什麼的示例: http://nerdpress.org/2012/07/10/10/caching-data-in-symfony2/ –

+0

我的問題確實是open_basedir(請參閱https:// bugs .php.net/bug.php?ID = 53263)。它不允許實時路徑被緩存,我只是不知道如何修復它 –