線上使用者

目前共有 0 位註冊使用者4 位訪客 在線上。

新會員

  • hihi
  • lady8904
  • xyz
  • arsisthesis
  • selly

書籍推薦

Throttle 模組 - 自動負荷管理功能

Arthur Yu 的照片
No votes yet

Drupal 是個彈性很高的軟體,不過,通常彈性越高的軟體,那個消耗資源 ( CPU & RAM ) 的能力也就越強,所以就不好在 Hosting 上使用,因為容易就會把整個主機的資源給佔光了,就不能給很多網站共用一台主機了,不過還好,Drupal 是還沒到那個地步,Drupal 有提供內建的快取和負載控制的功能來協助降低主機的負荷,而今天要介紹的便是用來控制負載的 Throttle 模組。

Throttle 模組怎麼來控制負載呢 ? 很簡單,就是把一些可以關的模組或區塊,在達到設定的高負載條件時,Throttle 模組就會自動的起來,把一些預先指定好的模組或區塊一一的關閉,讓這些模組或區塊在高負載的情況下不使用,所以能有效的降低主機的 CPU 負載。

雖然現在有很多的 Hosting 都號稱什麼東西都是 Unlimited ( 無限的 ),其實用起來就會知道,都是有限的,尤其是在 Shared Hosting 的主機上,每一個帳號可以使用的資源 ( CPU、記憶體及資料庫連線 ) 都是有限制的,只是 Hosting 廠商不會直接告訴各位大德可以用多少,因為現在的 Hosting 競爭實在是太給它激烈的了。

所以說,只要大德的流量或是訪客數到了一定程度就會發現網站的速度有點給它慢起來,這樣就要來考慮要不要啟用 Throttle 模組,不過這是斷尾求生的方法,長期來說,還是要考慮多花錢了....呵呵。

1.啟用 Throttle 模組
Throttle 模組是內建的,不用再下載了,直接到 「管理」 › 「網站建置」 › 「模組」 裡去把 Throttle 模組勾起來就可以了。

2.權限設定
這個....不需要設定權限,因為是自動控制的嘛.....呵呵 !!

3.設定 Throttle 模組
啟用完 Throttle 模組後,就可以到 「管理」 › 「網站設定」 › 「負荷」 ( admin/settings/throttle) 來做下列設定,項目不多,也不難哩 !!

「針對匿名使用者啟用負荷管制:」(Auto-throttle on anonymous users: )

這個和下面那個項目都是用來設定 Throttle 模組被啟動的時機,是用同時的線上人數來判定要不要啟動 Throttle 模組,這個項目是用匿名的使用者數量 ( 就是沒有登入的使用者 ),下面的就是用有登入的使用者,有註冊沒登入的使用者,算....是匿名使用者的.....。

設定的說明上用 250 人當做例子,哇 ! 同時線上人數 250 人哩 !! 好遙遠啊 ! 而且阿舍的站到 10 ~ 15 人就不行了,所以各位大德還是要觀察一下再決定數量,阿舍設多少 ? 沒辦法,用便宜的 Hosting ,所以就給它設定到 10 而已....呵呵,應該還可以往上調吧....=____=!!。

「針對註冊使用者啟用負荷管制:」(Auto-throttle on authenticated users: )

為什麼要分匿名和註冊使用者呢 ? 以阿舍的站,有註冊然後有登入的兄弟們,同時出現的機會很少,所以,阿舍就設為 0,也就不管啦 ! 不過,配合上一個項目的設定,還有一個想法是,為了保障註冊使用的權利,而把上一個項目設的很小,而這裡設為 0,這樣子的話,就比較容易確保登入使用者的可用資源哩 ! 可以算是註冊使用者的項目小小福利吧.....,但是,這可不是Throttle 模組的主要用途啊....=___=!! 。

「自動負荷管制可能性限制:」(Auto-throttle probability limiter:)

就字面上的意思來看,不知各位大德們有沒有給它看的懂哩 ?! 阿舍是在看完中文後,再又回去看英文版的,然後再去找官網的 Handbook 之後,才有所領會的哩 !! 這個是功能是用來避免 Throttle 模組自動過頭了,結果把自己變成最吃資源的服務,所以在這裡就來設定一下 Throttle 模組自動用的機率。

這裡的機率是用網頁的被瀏覽數來計算的 ( 也就是 Page View的意思),當設定成 5% 時,就表示,每 5 個頁面被瀏覽後,Throttle 模組就會去檢查是不是需要啟用 Throttle 的機制,但是,請各位大德注意,這個 5% 真的只是一個比例,實際上並不是每 5 頁更新一次,而是Throttle 模組會用一種阿舍不知道的方式來計算的.....=_____=!!。

這裡要設多少才是 OK 的呢 ? 照欄位下面的說明是說,當網站流量越高時,那麼發生的機率就要設的越低,也就是說要更頻繁的檢查啟用的時機,阿舍是設為先設為 10%,然後再來觀察看看囉 !!

4.選用要啟用 Throttle 功能的區塊
前面阿舍已經有提過了,Throttle 模組是透過暫時的停用某些功能來達到降低資源的消耗,但是,Throttle 模組怎會知那一個模組是它最看不順眼,要給它停掉的呢 ? 對 ! 沒錯 ! Throttle 模組沒有那麼利害,可以自己來安排,所以就要各位大德們先來設定好才行。

啟用 Throttle 模組之後,在模組 ( /admin/build/modules)和區塊(/admin/build/blocks) 的管理介面裡,就會發現多了一個可勾的方框,叫做「負荷 (Throttle)」,只要是這個欄位被打勾了,那就表示這個模組或區塊在網站的負載達到設定的條件後,就有可能會被停用。

不知各位大德有沒有和阿舍一樣的疑問,到底那該把那些模組起來呢 ? 呵呵,阿舍似乎也找到什麼比較好的建議,阿舍的原則是,只要不影響資料產生和編輯的模組,大概就都可以把它給列進來是。

5.確認結果
設定完成之後要怎麼知道到底有沒有效呢 ? 這個不難,如果有運作成功的話,當符合的條件達到時,到 「管理」 › 「日誌」 › 「最近日誌項目」就可以看到出現 Throttle 被啟動的訊息了,當然囉 !! 還有一個更快的方法,就是設定在高負載時停用某個區塊,那麼只要看區塊有沒有被隱藏就可以知道 Throttle 模組是否有啟動了...呵呵。

阿舍是到了負載高點的時候才想到要啟用這個模組,但是,阿舍在很多地方都有看到說,可以利用這個 Throttle 模組來阻擋 「服務阻斷 (Denial of Service - DoS) 攻擊,所以,各位大德如果負載不高也可以把給啟用,但是把使用者的數目設定的高一點,再把多一點的模組和區塊給設定成高負載時停用,這樣的話,就算真的好運給它遇到 DoS 攻擊時,還有機會保持網站的最低運行能力,才不會真的被阻斷了......。

BloggerAds

Facebook Page

Drupal 新聞

Translate


訂閱服務...

最新回應

阿舍的隨手....