2009-08-05 81 views
1

我正在幫助某人進行Drupal 6安裝,他們對網站的性能感到非常困擾,即使他們只處於定義內容類型的階段。只需加載模塊列表可能需要超過30秒,導入內容類型需要花費將近3分鐘。Drupal - CCK字段和內容類型與性能的關係?

這是安裝在一個大的共享UNIX系統上,我在同一臺服務器上運行其他D6安裝,沒有真正的問題(有些緩慢,但沒有什麼不好)。今天下午我花了一些時間禁用了網站上的所有非核心模塊,並且能夠將模塊列表頁面的加載時間降低到大約5秒鐘。當我重新啓用了模塊組時,似乎發生性能最差的是CCK系列模塊(模塊列表的頁面加載時間增加了15-20秒)。

同樣,我在這個服務器上也運行CCK(和大多數相同的其他模塊)的其他網站,沒有遇到任何這樣的事情。主要區別在於,這個非常慢的網站有大量的內容類型和CCK字段 - 46個獨立的內容類型和162個CCK字段。

我得出的結論是,網站性能(至少在某些操作與創建和編輯內容類型有關)和內容類型數量和自定義字段之間存在直接聯繫,但我還沒有能力確切確定這些內容類型和字段的影響,以及是否有任何可以減輕其影響的措施。

我確實安裝了Devel模塊,發現Modules頁面上最大的性能消耗是與cache_menu有關的查詢,但我不確定它是否直接鏈接到內容類型數量和/或領域。

任何指導表示讚賞!

感謝, 保羅

回答

1

第一關:該模塊頁面確實是一個邪惡的野獸,因爲它完全刷新所有Drupal的內部緩存和重建他們,以確保新安裝的模塊有最新的數據。它不是一個很好的站點性能預測器(因爲通常只有特定的管理任務會刷新這些類型的緩存),儘管它很煩人。

第二:導入內容類型也刷新這些緩存,因爲CCK想要確保一切都是最新的。這是次優的,但你有它。

最後:你擁有DOES的CCK字段和內容類型的數量影響刷新和重建緩存時完成的工作量。 CCK提取關於所有定義的內容類型及其字段的所有信息,構建一個數據結構來描述它們,並使用該緩存版本供以後參考。由於數百個字段和數十種內容類型,重建數據緩存需要更長的時間,從而加劇了您在模塊頁面上看到的延遲以及導入新內容類型時的延遲。

好消息是,這個特殊的問題對網站的整體性能沒有太大的影響,只是沖刷這些緩存的管理操作。

+0

真棒信息。謝謝! – gravelpot 2009-08-06 13:19:03

0

這是我在另一個Drupal問題上做出的答案;如果伊頓的答案沒有解決您的問題,也許您應該查看Views模塊和動態菜單重建。 每一次,菜單重建,導致100或甚至1000的查詢。 根據連接方式的不同,最終可能會在同一個表上產生兩個類似的連接,從而導致查詢數加倍。 更多的信息可以發現here

相關問題