由於Netflix以及其他貢獻者的努力,分散式快取記憶體系統Memcached釋出最新1.6.0版本。現在預設情況,Memcached會編譯外部快閃儲存系統,官方提到,用戶要將該系統用於大規模生產中,仍然需要謹慎小心的使用,但是以一般的情況來說,已經算是穩定的狀態,官方會繼續改善該系統。雖然在預設情況下會編譯該系統,但是用戶要使用,還是必須要手動啟用,因此除非用戶要使用,否則不會影響安裝程序,並且也可以在編譯時手動禁用。

Memcached 1.6.0引入了新的元協定(Meta Protocol),比起原本的二元協定支援更多功能,原本可以使用文字或二元協定可以完成的工作,都可以使用新的元命令,官方表示,這些指令可以提升快取系統的效能與正確性。在引入新的元協定同時,官方也宣布正式棄用二元協定,不過,未來還會提供數年的支援以及修復程式,但是已經不會有新命令和功能更新,官方提醒,所有用戶都應使用元協定或是文字協定。

新版本的另一大工程,便是官方重構了網路相關功能的程式碼,現在自動批次處理系統呼叫,當用戶在同一個TCP中傳送多重Get指令時,Memcached會傾向使用單個系統呼叫回應。過去,特別是使用二元協定時,針對每個回應,擷取所有金鑰都是使用獨立的系統呼叫。官方提到,用戶可以很明顯地感受這項改進帶來的效能提升,平均每1.5個系統呼叫,可減少25%的伺服器CPU使用率,並且減少些微的延遲。

而且這項改變,讓許多靜態分配給已連接客戶端的緩衝區,都變成按需使用,而這降低閒置客戶端連接所占用的記憶體容量,從原本最低的4.5 KB降低到約500位元組,同時也移除了內聯mallocs、reallocs以及frees等,這些會在大量連接數時,造成系統記憶體破碎的功能。

官方提醒,雖然他們在軟體的品質下了很多功夫,但是這個版本比過去版本容量還要大,因此用戶在Memcached上建立重要的基礎設施,應該盡可能減緩部署的節奏。


Advertisement

更多 iThome相關內容