Mongodb
從 ext4 到 xfs 的 mongodb 有線老虎引擎
我在 ext4 文件系統(https://docs.mongodb.com/manual/administration/production-notes/#kernel-and-file-systems)上遇到與 mongodb 有線老虎引擎相關的性能問題
我有一個帶有 2 個伺服器和一個仲裁器的副本集(全部在 ext4 上)。
我想知道將新伺服器添加到具有不同文件系統(在我的情況下為 XFS)的副本集中是否有任何問題,想法是添加新的 XFS 輔助伺服器並將一個提升到主伺服器,然後再關閉舊的在 ext4 上。
副本集成員絕對可以使用不同的文件系統——成員甚至不知道他們的同伴正在使用什麼文件系統。
儘管使用 Ext4 文件系統是 MongoDB 和 WiredTiger 性能問題的一種可能性(特別是在寫入負載很大的情況下),但可能還有其他問題會影響您的案例。如果您決定發布後續問題以調查您的周期性性能問題,則 MongoDB 伺服器的特定版本、O/S 版本、啟動警告以及與減速期間相關的任何日誌消息等詳細資訊可能會提供更多資訊。託管(裸機與雲)、伺服器資源(RAM、CPU、磁碟類型)和
mongod
配置更改等其他部署細節也可能是相關的。由於您懷疑與使用 Ext4 相關的性能問題,我會嘗試隔離對您的 MongoDB 部署的更改以嘗試確認這一理論(特別是如果您的周期性停頓始終可重現):
- 如果您只看到副本集的一個成員(例如主節點)的周期性停頓,請嘗試降低目前主節點,以便成員交換角色。緩慢/配置不足的 I/O(或云/共享託管環境中的嘈雜鄰居)有時可能是罪魁禍首。您可能還會發現基於成員角色的其他一些因素(例如,如果您的應用程序正在從輔助節點讀取)。
- 如果您看到兩個目前承載數據的成員定期停止,請使用 XFS 添加一個新成員
storage.dbPath
以測試該新成員是否表現出相同的行為。- 如果您尚未為您的 MongoDB 版本執行最新的次要版本,請升級。例如,如果您正在執行 MongoDB 3.4.2 並且可用的最新版本 3.4.x 是 3.4.10,那麼絕對值得測試最新的穩定版本。同一生產版本系列中的升級包括錯誤修復和穩定性改進,但不應引入任何兼容性更改。
其他建議:
- 查看 MongoDB 日誌中的任何可疑活動或可能與減速或停頓期相關的日誌消息。例如,TTL(生存時間)索引到期任務每 60 秒執行一次,可能會刪除大量文件。可能會記錄緩慢的查詢或其他相關警告。
- 假設您有一些指標監控,請查看您的 MongoDB 部署的指標,以查找與您的性能不佳時期一致的異常值或模式。
- 如果您在最新的 MongoDB 生產版本系列之後執行多個主要版本,請考慮在代表性的暫存/開發環境中測試主要版本升級。在連續的主要版本中已經有了顯著的改進。
- 有關調整部署的一般資訊,還值得查看MongoDB 生產說明。