在Couchbase2.1中支持硬盤多讀些(Multi- Readers and Writers),通常雙核4G服務默認3個threadnode
4核16G內存一個設置爲 8個線程git
在Couchbase重啓後,須要經歷熱身階段才能進入運行狀態:github
初始化,這階段服務沒有任何數據,將從vBucket中加載初始化各個vBucket的狀態和數據。shell
Key Dump. 這階段,主要加載key和metadata。緩存
檢查訪問日誌, 預讀單個訪問緩存日誌(記錄了key的頻率),若是日誌存在,就會先根據日誌加載key,而後再從硬盤加載數據線程
加載key,後就會加載相關文檔日誌
在達到下面狀態時,服務進入運行狀態:code
完成加載全部訪問日誌key的文檔 ,或orm
加載完全部的vBuckets的文檔, 或server
內存全部的文檔大於等於 ep_warmup_min_items_threshold, 或
RAM的百分比臨近 ep_warmup_min_memory_threshold, 或
RAM的使用臨近 mem_low_wat
若是服務在warmup狀態, 客戶端鏈接回報 ENGINE_TMPFAIL code 錯誤。
使用cbstats獲取warmup 信息,但一次只能獲取一個節點一個bucket的信息:
shell> cbstats localhost:11210 -b beer_sample -p bucket_password all | grep 'warmup' shell> cbstats hostname:11210 -b my_bucket -p bucket_password raw warmup
Indicates if the warmup has completed. Returns "running" or "complete".
Indicates the current progress of the warmup:
Initial
Start warmup processes.
EstimateDatabaseItemCount
Estimating database item count.
KeyDump
Begin loading keys and metadata based, but not documents, into RAM.
CheckForAccessLog
Determine if an access log is available. This log indicates which keys have been frequently read or written.
LoadingAccessLog
Load information from access log.
LoadingData
This indicates the server is loading data first for keys listed in the access log, or if no log available, based on keys found during the 'Key Dump' phase.
Done
Server is ready to handle read and write requests.
經過 cbepctl 設定 ep_warmup_min_items_threshold 能夠改變warmup的行。
服務默認天天2:00 AM UTC運行一次掃面訪問日誌,而決定key的使用頻率:
# 每二十分鐘掃描一次 shell> ./cbepctl localhost:11210 -b beer-sample set flush_param alog_sleep_time 20
每一個集羣的node 都有兩種數據 replica data and active data,replica data是其餘節點的副本數據, active data是客戶端寫的數據。
Couchbase使用 p2p策略進行寫副本, 而且只能調節寫的速度。
一般設置3個副本,是很是有用的