我在Sitecore CMS中遇到了相當耗時的問題。Sitecore - 無應用程序池回收
是否有可能縮短每次在bin文件夾或web.config中進行更改時應用程序池回收所花費的時間?
服務器需要2到5分鐘才能在更改後立即作出響應。
任何想法?
我在Sitecore CMS中遇到了相當耗時的問題。Sitecore - 無應用程序池回收
是否有可能縮短每次在bin文件夾或web.config中進行更改時應用程序池回收所花費的時間?
服務器需要2到5分鐘才能在更改後立即作出響應。
任何想法?
有從Sitecore的亞歷克斯在這裏一個shyba文章Reducing Sitecore Startup time
總結文章是
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
<setting name="Counters.Enabled" value="false" />
有很多的改進Sitecore的性能文章中,我列出以下幾個環節:
在MSDN上它說這個元素不會影響.NET 4之後的程序集加載時間。我不確定這是否仍然適用。 – kamranicus
@subkamran我現在正在使用.Net 4.5,而且我仍然在Sitecore 7.2中遇到同樣的問題。 –
@ SachinB.R。如果你沒有在開發環境中使用分析,即不在Sitecore DMS的東西上工作,那麼你可以禁用這個設置:
他需要重新啓動應用程序池才能加載新的dll。
你可以儘量減少你在啓動時做的事情(但我猜這主要是你無法影響的sitecore東西)所以我可以給出的最好的建議是有2個內容切換的網絡服務器。
您可以在2臺服務器上運行應用程序,並且內容切換決定哪個服務器處理哪個請求(因爲每個服務器都不知道其他服務器,所以請小心會話和靜態)。
如果在某些時候您需要發佈新版本,您只需指示您的內容切換將所有流量導向到Web服務器A.然後,您可以部署到Web服務器B,通過不通過內容切換的直接網址打開網站,以及確保它正常工作+預熱。
然後你告訴內容交換機將所有的交換指向B,並且你有足夠的時間來更新web服務器A並將內容交換機切換回正常模式。
不過2-5分鐘聽起來很極端。這是不正常的。你的硬件是否是最新的? 另外,我會着眼於預取緩存。在您的開發環境中,您可能不希望我在啓動時獲得太多,因爲這在開發過程中不需要。
我也會看看initialize pipeline和global.asax,看看你是否在做任何自定義的啓動工作。
您可以減少預取的核心,掌握和網絡數據庫高速緩存的大小,但不建議這樣做,在生產服務器上做到這一點只在開發機器,不是。
我也有這個問題。
無論出於何種原因,我的本地副本將花費大約5分鐘的時間,在完成任何更改或啓動網站新鮮後完全啓動。測試任何東西絕對是可怕的。這只是本地的一個問題。我的開發服務器環境和生產似乎沒有受到影響。
我發現了一個分析工具,該工具允許我找到一個異常值控制,並且需要花費大量的時間進行渲染。試試這個......
在我的情況下,我發現最大的問題來自一個控件,它正在爲一個項目進行昂貴的搜索。 它看起來像這樣 - >Sitecore.Context.Database.SelectItems("" + Sitecore.Context.Item.Paths.Path + "/ancestor-or-self::*[@@templateid='" + templateId + "']");
這主要是一個本地問題,因爲SQL服務器對我的機器是遠程的,而其他服務器在同一個建築物中。因此開發和生產相對不受影響。
祝你好運!
而您將這個緩慢的XSLT查詢替換爲像Sitecore Fast Query之類的其他內容?如果項目路徑包含一個破折號字符 - 或另一個保留字,則此查詢也包含一個錯誤。你需要用# –
來代替它,而不是以這種方式進行搜索,而是將它烘焙成一些從Sitecore.Context.Item中去掉的邏輯,其中遞歸檢查父項所在的模板是否爲我一直在尋找相同的ID。 –
@JanBluemink我知道你是對的逃避角色。這使得俄勒岡州或'一個非常有趣的國家有一個着陸頁。 :) –
我目前正在客戶端的網站上遇到類似問題,我很好奇 - 您是否在使用Lucene索引,它們有多大? (均爲文檔數量和文件大小)。我有一個暗示,Sitecore在啓動時將大量時間加載到內存中。 – mmmeff