網站性能優化及Drupal性能優化拾遺

歸類于Drupal 參與評論

閱讀了一下drupal專業開發指南一本書,英文版的,里面有幾點關于drupal以及網站優化的建議,總結了一下,列在此處以供參考。

  1. 使用varnish作為前段代理。(一直推薦,從不間斷!)
    也可以使用Boost+Varnish,兩個并不沖突。如果內存足夠多,可以把Boost的的緩存目錄掛載在內存上,這樣速度更快。
  2. 不要使用Drupal默認的404,因為走Drupal,比較慢,消耗系統資源。
    給htaccess或者apache的conf文件添加如下代碼:

    <filesmatch "\.(png|gif|jpe?g|s?html?|css|js|cgi|ico|swf|flv|dll)$">
      ErrorDocument 404 default
    </filesmatch>
  3. 定時清理Session表。
    Drupal的session保存在數據庫里面,設置不當會導致大量的垃圾數據,因此需要設置session時間短一點。添加如下代碼到settings.php里面

    ini_set('session.gc_maxlifetime',   86400); // 24 hours (in seconds)
    ini_set('session.cache_expire',     1440); // 24 hours (in minutes)
  4. 閱讀全文 《網站性能優化及Drupal性能優化拾遺》

1,199 Views , , ,

使用APC優化Drupal時要注意的細節

歸類于服務器技術 參與評論

此前博文《drupal性能優化經驗貼》中提到,一般類似drupal這樣的PHP框架,我們為了提高性能必須要使用opcode來提高PHP的執行速度,PHP也有這樣的模塊。
我們都知道使用APC或者eAccelerator這樣的opcode緩存可以提高網站的性能,但要注意的是需要根據網站的規模做細節的調優,只使用默認設置,可能帶來的結果是性能還不如不用他們之前的效果。

這里要說的Case是,APC配置中有一項是shm_size,這是用來控制劃分多少內存給APC使用,用來緩存文件或者opcode,對于文件緩存,原理大概相當于,預先讀取到內存中緩存起來,下次再使用時就不需要占用磁盤I/O了,這個想法當然是很好的,依賴來說效果也是非常明顯的。但使用Drupal做的大型項目,開啟的模塊是很多的,那就意味了需要加載的文件很多,他們放到一起占用的內存是很可觀的,一般APC默認的配置可能16M, 那么當文件緩存的內存占用超過16M之后,會有什么問題呢,帶來的問題是include_once這樣的函數花費很長時間決定如何加載文件,這里可能存在一些算法上的問題,需要覺得那些緩存丟棄,把新讀取的文件緩存放在內存中什么位置之類的,總之在這種情況下,APC反而會讓性能下降,大概下降3,4倍左右。

所以,在實際應用環境中,需要知道啟用了多少個模塊,需要提供大概多少內存,對于一個服務器提供多個站點,并且各個站點的Drupal是獨立目錄的場景中,因為APC的緩存機制,緩存所需內存更是成倍增加的。所以要么不用,用的話,一定要留出足夠的內存,另外eAccelerator也是同樣的道理,也許在內存溢出時,由于調度算法的差異,性能下降程度可能不一樣,但總是會有影響的。

因為本文只記錄了結論,沒有包含分析過程,大家可以參考一下原文的詳細分析。

High PHP execution times for Drupal, and tuning APC for include_once() performance

814 Views ,

頂部
安徽福彩15选5走势图