控制 ceph 集群中 osd 記憶體使用量

2021-10-09 18:14:10 字數 1649 閱讀 9481

測試 ceph 集群的效能

可以在修改前後,做 ceph 集群效能測試,進行對比

新增 uat pool

ceph osd create uat 128 128
write 測試(先測試 write,不然 seq 會報錯)

rados -p uat -t 30 bench 30 write --no-cleanup --run-name ***
seq 測試

rados -p uat -t 30 bench 30 seq --run-name ***
清除 uat pool 中 benchmark 資料

rados -p uat cleanup
控制 ceph 集群中 osd 記憶體使用量

使用 ansible-ceph 部署的 luminous 版本的 ceph,預設採用 automatic cache sizing,bluestore 嘗試通過 osd_memory_target 配置選項將 osd 堆記憶體使用率保持在指定的目標大小一下。

本集群中 osd memory target = 18925868810,使用時間長了,導致 osd 使用記憶體超過 60%。每個 osd 伺服器有 20 塊硬碟,對應 20 個 osd,500gb 記憶體。由於 ceph 集群和 openstack 集群在一套伺服器上,導致最終openstack 分配虛擬機器到達一定數量後,集群記憶體不夠用。

[osd]

#osd memory target = 18925868810

osd memory target = 644245094418925868810

修改 ceph 配置檔案 /etc/ceph/ceph.conf,設定 osd memory target = 6442450944,每塊 osd 最大使用 6gb 記憶體

[osd]

#osd memory target = 18925868810

osd memory target = 644245094418925868810

重啟 c***3 上的 osd

systemctl list-units -t service | grep osd | grep active | awk '' | xargs systemctl restart
檢視 c***3 上記憶體使用率

ps aux | grep osd | grep -v grep | awk 'end'
檢視 c***3 上記憶體使用量,單位 kb

ps aux | grep osd | grep -v grep | awk 'end'
修改 ceph 生產集群所有節點的配置檔案 /etc/ceph/ceph.conf 中 osd memory target = 6442450944,依次執行systemctl list-units -t service | grep osd | grep active | awk '' | xargs systemctl restart,每次等 ceph health 恢復到 health_ok 在繼續下乙個節點

參考文章:

ceph儲存 ceph集群osd故障自我檢測

心跳是用於osd節點間檢測對方是否故障的,以便及時發現故障節點進入相應的故障處理流程。故障檢測需要在故障的發現時間和心跳帶來的負載之間做權衡,如果心跳頻率太高則過多的心跳報文會影響系統效能,如果心跳頻率過低則會延長發現故障節點的時間,從而影響系統的可用性。在大規模部署的場景中,如果任意兩個osd節點...

我所了解的各公司使用的Ceph儲存集群

閱讀原文 摘要 ceph 作為軟體定義儲存的代表之一,最近幾年其發展勢頭很猛,也出現了不少公司在測試和生產系統中使用 ceph 的案例,儘管與此同時許多人 ceph 作為軟體定義儲存的代表之一,最近幾年其發展勢頭很猛,也出現了不少公司在測試和生產系統中使用 ceph 的案例,儘管與此同時許多人對它的...

linux中記憶體使用原理

首先介紹一下linux中記憶體是如何使用的。當有應用需要讀寫磁碟資料時,由系統把相關資料從磁碟讀取到記憶體,如果物理記憶體不夠,則把記憶體中的部分資料匯入到磁碟,從而把磁碟的部分空間當作虛擬記憶體 來使用,也稱為swap。如果給所有應用分配足夠記憶體後,物理記憶體還有剩餘,linux會盡量再利用這些...