根據ceph 16版本的changelog,16版本提供了cephfs-top文件系統監控工具。剛好手頭最近有個16版本的集群,便體驗壹下。
文件系統客戶端周期性向元數據服務發送各類監控指標(metrics),這部分數據由元數據服務路由到mds為rank 0的節點 。
元數據服務器(多活部署)同樣會將自身的指標數據發送至rank 0節點。並由rank 0匯集之後發送給Ceph mgr服務。
工具的使用者可以看到兩類和文件系統相關的數據:
1、全局數據。窺探文件系統整體情況,比如客戶端延遲。
2、每個MDS服務的數據。比如每個MDS擁有的子樹(但是實際體驗沒看到)。
ceph-mgr作為管理組件,具有集成插件的能力。stats負責統計插件。使用前開啟stats插件
由stats插件提供的文件系統性能統計命令
(註:方括號代表可選)
不加mds_rank查看到的是整體文件系統監控指標。利用json形式查看。
輸出如下:
嘗試之後發現展示的信息還是不夠直觀。另外,MDS的統計信息都是空的。
其中屬於 客戶端 幾個主要的參數:
幾個延遲是總延遲,除以操作量才是平均延遲。
cephfs-top是類似top的形式,依賴組件是mgr中的stats插件。使用python語言實現,展示主要是客戶端的統計情況。
cephfs-top源碼中,獲取數據實現部分。
創建client.fstop用戶,該用戶為cephfs-top工具默認使用的用戶
安裝cephfs-top工具
如果出現 “RADOS permission denied”的錯誤。使用ceph auth get命令獲得fstop的keyring至本地ceph默認配置目錄。
運行監控命令
選項 -d 可以支持0.5s以上的展示頻率。
可展示信息:
1、客戶端數量,統計FUSE、內核、libcephfs使用者。
2、客戶端id;
3、客戶端對應cephfs掛載目錄;
4、客戶端本地目錄,IP地址;
5、chit cap的命中率。
6、rlat 讀操作總延遲(單位s)
7、wlat 寫操作總延遲(單位s)。
8、mlat 元數據操作總延遲(單位s)。
9、dlease dentry lease即客戶端dentry可用率。
10、oicaps 該客戶端持有caps的數量。
11、oinodes 該客戶端打開文件持有inode的數量。
在統計插件stats和cephfs-top出現前,ceph支持到各個組件所在節點通過命令查看性能統計。
比如客戶端的延遲只能登陸到各個掛載節點查看。MDS的情況也只能在對應的節點通過ceph daemon方式查看。現在做了部分信息的匯總,對於運維和性能優化工作而言非常方便。
但是,統計的信息覆蓋面還比較窄,組件的統計信息細節沒有完全展示,如果要查看某個客戶端或者MDS的統計信息,還是需要到各個節點上查看。cephfs-top還有可完善的空間。