今年開始用Drupal平台軟件并升級了服務器硬件以後,數據量不斷增加,流量和收入也有了新的突破。這兩天看我們新購置的萬轉硬盤快要被占滿了,300G的迅猛龍硬盤前天隻有20G空餘,昨天隻有10G空餘,今天再不想辦法就滿了。
今天和同事一起商量了解決辦法,先是計算了Drupal文件緩存占用磁盤的大小,以前MediaWiki的文件緩存可以選擇使用.html或者.html.gz兩種方式,我們一般都是選用占用空間更小的後者,而Drupal的Boost模塊緩存機制與MediaWiki不同,是完全跳過了PHP和MySQL,隻需要Apache與浏覽者打交道,原理上來說比MediaWiki效率更高,不過每個頁面需要生成.html和.html.gz兩套文件,一般.html.gz文件平均大小在12.5KB左右,而未壓縮的.html需要乘以3,也就是37.5KB左右,兩套文件加起來就是50KB左右,是純壓縮文件的4倍。
當有1000萬個頁面的時候(前一陣子添加的31個省份組織機構郵編就有這麼多),需要占用的空間就等于10M*50KB=500GB,如果算上分類頁面、列表頁面以及Boost緩存的搜索結果文件等,比這個數字還會多,那個300GB的高速硬盤顯然是不夠的,需要TB級别容量的硬盤,那個WD的萬轉迅猛龍硬盤最大容量好像隻有600GB,就先用一塊普通1TB硬盤來專門做文件緩存試一試看,不行以後再換。
同事測試了一下,用Linux下的ln -s命令是可以多級傳遞的,例如htdocs目錄從系統盤鍊接到高速硬盤後,其下屬的cache目錄還可以繼續用ln -s名錄來指向其它硬盤,這樣我們就可以将不同子網站的緩存目錄指向另外的硬盤,從而将大量緩存文件分布開來。
今天下午已經先轉移了部分目錄,為後來做的多語言網站生成緩存騰出20G空間,其它的目錄還會繼續轉移。做的時候可以先把緩存文件都複制過去(文件數量大時這會是一個漫長的過程,需要幾十到幾百個小時以上),然後再修改目錄鍊接,以避免所有緩存文件都需要完全重新生成所造成的數據庫負載過高問題。
评论