管理及程式設計指南

架構「快取管理程式」和 Net.Data 快取

「快取管理程式」管理系統中的一個或多個快取。 每一個快取包含動態產生的 HTML 頁面之內容。 若要架構「快取管理程式」和每一個快取, 您要更新「快取管理程式」架構檔 cachemgr.cnf 中的關鍵字值。

「快取管理程式」架構檔包含兩種段落: 「快取管理程式」段落和「快取定義」段落。 下列步驟說明如何為您的應用程式自行設定這兩種段落。

定義「快取管理程式」

指定容許關鍵字的值,來定義「快取管理程式」段落。 所有關鍵字是可選用的:除非不想接受預設值,否則不需要指定其值。

若要定義「快取管理程式」:

  1. 設定「快取管理程式」日誌檔的名稱。 該日誌顯示所有快取的全部異動活動,且供除錯和問題分析使用。

    預設值是將訊息寫至主控台。

    語法:

    log=path
    

    其中,path 是快取檔的路徑和檔案名稱。

    要訣:若要指定日誌檔給每一個快取, 請在「快取定義」段落中使用 tran-log 關鍵字。

  2. 指定「快取管理程式」為了進入要求所用的 TCP/IP 通信協定埠號。 這個埠號只用於聯絡「快取管理程式」和遠端機器。

    此值必須符合 Net.Data 起始設定檔中 DTW_CACHE_PORT 架構變數所指定之埠號。預設值的決定方式如下:

    1. 「快取管理程式」檢查路徑 /etc/services 中, 有關名稱 ibm-cachemgrd 的值。若找到此值,則「快取管理程式」使用該值。 若找不到,則使用下一個方法。
    2. 「快取管理程式」用預設埠 7175。

    語法:

    port=port_number
    

    其中,port_number 是唯一的 TCP/IP 通信協定埠號。

  3. 以秒為單位,指定「快取管理程式」容許擱置中之讀取作業保持作用中的最大時間。 若超過這個時間,則「快取管理程式」會中斷連線。

    預設值是 30 秒鐘。

    語法:

    connection-timeout=seconds
    

    其中,seconds 是擱置中之讀取作業保持作用中的時間長度,以秒數為單位。

  4. 設定是否記錄訊息。

    預設值是 nooff

    語法:

    logging=yes|on|no|off
    

    其中:

    yes|on
    表示記錄是必要的

    no|off
    表示不要執行記錄。
  5. 設定是否折返日誌。

    預設值是 no。若指定為 yes, 則當檔案大小達到最大值時 (請參閱下列 log-size)、 檔案類型為 .old 時、及新日誌開啟時,現行日誌會關閉。 只保留一份日誌檔 (舊有 .old 檔案會被改寫)。

    語法:

    wrap-log=yes|no
    

    其中:

    yes
    指定要折返日誌。

    no
    指定不折返日誌。
  6. 以位元組為單位,設定容許日誌擴大到最大之值 (若已指定折返日誌的話)。

    預設值是 64000。

    語法:

    log-size=bytes
    

    其中,bytes 是最大大小的位元組數。

  7. 設定要寫入日誌中的訊息層次。 若這些值出現在 trace_flag_definitions 列示中且無任何設定, 則會設定為 on。

    預設值是僅記錄「快取管理程式」啟動和關機訊息。

    語法:

    trace-flags=trace_flag_definitions
    

    其中:

    D_ALL
    啟用所有追蹤旗號。

    D_NONE
    停用所有追蹤旗號

範例:指定所有追蹤旗號皆啟用:

trace=flags=D_ALL

段落範例:有效的「架構管理程式」段落:

cache-manager {
port = 7175
connection-timeout = 60
logging = off
log = /local/netdata/cachemgr/logs/cachemgr.log
wrap-log = yes
log-size = 32KB
} 

定義快取

指定容許關鍵字的值,來定義「快取定義」段落。大多數關鍵字是可選用的, 且不需指定,除非您不想使用預設值。

若要定義快取:

  1. 指定用來保留快取頁面的路徑和目錄名稱。 在啟動時,含有此目錄的檔案系統大小,至少必須為 fssize 的值 (如下所示); 否則快取不會啟動。 此值可指定為絕對路徑名稱,或是對應於「快取管理程式」啟動路徑的相對路徑名稱。

    必要的。

    語法:

    root=path_name
    

    其中:

    path_name
    儲存快取頁面的絕對或相對之路徑和目錄名稱。
  2. 設定啟動「快取管理程式」時,現行快取是否作用中。

    不必要的;預設值是 yes。 若設定為 no, 則快取定義於「快取管理程式」中,但不啟動。 您可以稍後使用 cacheadm 指令來啟動它。

    語法:

    caching=yes|no
    

    其中:

    yes
    表示啟動「快取管理程式」時,亦啟用快取。

    no
    表示啟動「快取管理程式」時,不要啟動快取。
  3. 設定檔案系統中,由現行快取中的頁面所使用之最大空間。 超過最大空間值時,「快取管理程式」會刪除足夠的頁數, 從最舊的頁面開始刪除,以將快取所佔據的全部空間降至限制內。 您可以將此值設為最大,以有效停用自動除去登錄; 但是,若超過實體檔案空間,則新增新的頁面至快取中就會失敗。

    不必要的;預設值是 0 (沒有對磁碟進行快取)。

    語法:

    fssize=nnB|nnKB|nnM
    

    其中:

    nnB
    是位元組數;例如 5000B。

    nnKB
    是千位元組數;例如 640KB。

    nnMB
    是百萬位元組數;例如 30MB。
  4. 設定此快取中之全部頁面所用的最大記憶體數量。 超過最大記憶體數量時,「快取管理程式」會刪除足夠的頁數, 從最舊的頁面開始刪除,使快取所佔用的全部記憶體在界限內。 您可以設定頁數為最大數,以便有效停用自動除去頁數; 但是,若 cachemgrd 處理消耗太多記憶體, 則作業系統可能會終止它。

    不必要的;預設值是 1MB。

    語法:

    mem-size=nnB|nnKB|nnMB
    

    其中:

    nnB
    是位元組數;例如 5000B。

    nnKB
    是千位元組數;例如 640KB。

    nnMB
    是百萬位元組數;例如 30MB。
  5. 設定頁面在快取中保留的最大時間長度。 超過此值時,「快取管理程式」會將頁面標示為過期,但不會刪除該頁面, 除非到達了 fssize (若是在磁碟上快取) 或 memsize (若是在記憶體中快取) 限制。 若到達了 memsizefssize 限制, 則「快取管理程式」會在所有其它頁面之前,先刪除標示為過期的頁面。 您可以使用 check_expiration 關鍵字, 來停用 lifetime 檢查。

    必要的: 否;預設值是 5 分鐘。

    語法:

    lifetime=time_length
    

    其中:

    nnS
    是指秒數;例如 600S。

    nnM
    是指分鐘數;例如 20M。

    nnH
    是指小時數;例如 30H。
  6. 設定是否將快取頁面標示為過期,及執行生命週期檢查。

    不必要的;預設值是 yes,預設生命週期長度是 60 秒鐘。 此值也可設為時間長度,表示 yes 值, 並宣告項目保留在快取中的最大時間長度。 設定為 no 時,快取頁面就不會標示為過期, 且不會執行生命週期檢查。

    語法:

    check-expiration=yes|nnS|nnM|nnH|no
    

    其中:

    yes
    表示「快取管理程式」執行生命週期檢查,且快取頁面標示為過期。

    nnS
    是指秒數;例如 600S。

    nnM
    是指分鐘數;例如 20M。

    nnH
    是指小時數;例如 30H。

    no
    表示「快取管理程式」不執行生命週期檢查,且快取頁面不標示為過期。
  7. 設定快取頁面在快取內所佔用的最大空間數量。 若一頁面超過記憶體大小,則檢查檔案快取。 若有足夠的空間,則「快取管理程式」會在檔案快取中儲存快取頁面。 若頁面不適合於檔案快取,則快取嘗試會失敗。 若頁面小於 datum_memory_limit 值 (cacheobj-memory-limit), 但如果快取無足夠的空間,則從記憶體快取中刪除最舊的快取頁面, 以容納新建頁面。

    不必要的;預設值是 1KB。

    語法:

    datum-memory-limit (cacheobj-memory-limit)=nnB|nnKB|nnMB
    

    其中:

    nnB
    是位元組數;例如 5000B。

    nnKB
    是千位元組數;例如 640KB。

    nnMB
    是百萬位元組數;例如 30MB。
  8. 設定快取頁面在檔案快取內所佔用的最大空間數量。 若頁面小於 datum_memory_limit 值,但檔案快取中無足夠的空間, 則從檔案快取中刪除最舊的快取頁面,以容納新建頁面。

    不必要的;預設值是 1KB。

    語法:

    datum-disk-limit (cacheobj-space-limit)=nnB|nnKB|nnMB
    

    其中:

    nnB
    是位元組數;例如 5000B。

    nnKB
    是千位元組數;例如 640KB。

    nnMB
    是百萬位元組數;例如 30MB。
  9. 設定建立統計值記錄之間的時間。 若設為 0,則不會寫入統計值記錄。

    不必要的;預設值是 0 (沒有統計值)。

    語法:

    stat-interval = nnS|nnM|nnH
    

    其中:

    nnS
    是指秒數;例如 600S。

    nnM
    是指分鐘數;例如 1M。

    nnH
    是指小時數;例如 3H。
  10. 設定記錄現行快取之統計值的路徑和檔案名稱。

    stat-interval 的值大於 0 時,則為必要的。

    語法:

    stat-files=filename
    

    其中,filename 是記錄統計值檔案的路徑和名稱。

  11. 設定統計值計數器每次被寫入日誌檔時,是否應該重設 0。

    不必要的;預設值是 yes

    語法:

    reset-stat-counters=yes|no
    

    其中:

    yes
    重設統計值計數器。

    no
    不要重設統計值計數器。
  12. 定義路徑和檔案名稱,來保留每一個快取的異動日誌。 快取異動日誌檔不同於「快取管理程式」日誌檔, 後者用來記錄「快取管理程式」的整體活動。

    必要的;若未指定,則不會建立快取的異動日誌。

    語法:

    tran-log=filename
    

    其中,filename 是每一個快取的異動之路徑和檔案名稱。

  13. 設定首次啟動「快取管理程式」時,是否要開啟異動記錄, 來記錄快取。 除非透過 tran-log 參數來指定有效的異動日誌檔,否則系統不處理此參數。 若「快取管理程式」架構檔中已指定有效的 tran-log 值, 則可以使用 cacheadm 指令, 以便於執行「快取管理程式」常駐程式的同時,亦啟動異動記錄。

    不必要的;預設值是 no

    語法:

    tran-logging=yes|on|no|off
    

    其中:

    yes|on
    表示記錄是必要的。

    no|off
    表示不要執行記錄。
  14. 設定是否要折返異動日誌。

    不必要的;預設值是 yes。 若指定為 yes, 則當其大小達到最大值時 (請參閱 tran-log-size)、 檔案類型為 .old 時、及新日誌開啟時,現行日誌會關閉。 只保留一份日誌 (舊有 .old 檔案會被改寫)。

    語法:

    wrap-tran-log=yes|no
    

    其中:

    yes
    表示要折返日誌。

    no
    表示不要折返日誌。
  15. 以位元組為單位,設定容許異動日誌擴大到最大之值 (若已指定 wrap-tran-log 的話)。

    不必要的;預設值是 64000。

    語法:

    tran-log-size=bytes
    

    其中,bytes 是最大大小的位元組數。

段落範例:快取的有效「快取定義」段落:

cache0
{
root = /locale/netdata/cachemgr/caches/cache0
caching = on
mem-size = 10MB
fs-size = 1MB
datum-memory-limit = 200KB
datum-disk-limit = 1MB
lifetime = 6000000
check-expiration = 999999
tran-logging = no
tran-log-size = 10000
wrap-tran-log = yes
tran-log = /ocale/netdata/cachemgr/logs/tran.log
}


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]