數據庫性能
更新時間 2023-11-29 21:21:03
最近更新時間: 2023-11-29 21:21:03
分享文章
本頁介紹了文檔數據庫服務性能相關常見問題。
文檔數據庫服務什么情況下會觸發主備切換
當集群和副本集的primary節點down掉之后,會觸發主備切換。另外,您也可以在控制臺實例基本信息頁面進行主動的主備切換。文檔數據庫服務通過提供集群的連接串方式,便于應用端在主備切換后可以正常的進行讀寫,建議您使用連接串的方式配置業務的數據庫服務訪問。
當發現磁盤使用率高時怎么進行問題排查
您可以通過監控查看機器磁盤使用率。如果磁盤使用率高,可以從下面幾個角度進行排查解決:
- 確認業務數據量,您可以先連接數據庫,執行 show dbs 命令觀察目前數據庫的數據量。如果發現是業務數據量太大,那么可以對該實例進行磁盤擴容。
- 您也可以將過期無需再使用的業務數據進行刪除。
- 文檔數據庫服務默認使用WiredTiger存儲引擎。WiredTiger存儲引擎在刪除數據時,不會直接釋放磁盤空間,您可以借助compact命令進行磁盤空間的釋放回收。
- 對于sharding集群實例,確認是否因選擇的分片不合理引發數據分布不均衡問題,可以優化數據庫集合分片配置。
副本集中主從同步存在多長時間的延遲
數據庫主備同步延遲受多種因素的影響,常見的有:
- 主備節點間的網絡延遲,主備節點間的數據同步需要通過網絡傳輸。
- 復制策略:異步復制通常會引入更大的延遲。
- 數據庫負載:如主節點的負載較高,處理寫入操作的速度可能會受到限制,從而導致主備延遲加大。
- 事務大小:大事務通常會導致更長的主備同步延遲。
您可以通過連接文檔數據庫服務,執行rs.printSlaveReplicationInfo()指令查看副本集中的主備同步延遲。
主從節點之間的數據同步方式是什么
通過oplog進行異步同步,備節點通過拉取主節點的oplog,然后本地回放,實現主備節點之間的數據同步。
分片集群內存過高怎么進行排查解決
可以采取以下方法來消減內存使用:
- 優化查詢和索引,確保數據庫查詢使用了合適的索引,避免全表掃描,減少內存壓力。
- 增加硬件配置,可以擴容實例的內存規格。
- 限制查詢返回的數據量,避免一次性返回大量數據。
- 調整緩存設置,通過‘cacheSizeGB’參數調整緩存大小,適當增大緩存有助于提高性能。
- 設置合理的分片鍵,使數據均勻分配至各個分片上。
文檔數據庫服務分片集群持續寫入數據后查詢報錯怎么排查解決
當集群持續寫入數據后查詢出現錯誤,可能是由于多種原因導致的。可以考慮從以下方面進行定位:
- 查看錯誤日志:首先,查看文檔數據庫服務集群的錯誤日志,確定報錯的具體信息和錯誤類型。
- 查看硬件資源:確保硬件資源,如CPU、內存和磁盤空間,足夠支撐持續寫入和查詢操作。
- 檢查查詢語句:確保查詢語句使用了正確的語法,沒有拼寫錯誤,并且合理地使用了索引。
- 檢查網絡連接:確保文檔數據庫服務集群之間的網絡連接正常。網絡問題可能導致查詢超時或失敗。
- 檢查鎖情況:長時間持有鎖可能會導致查詢阻塞。使用db.currentOp()命令查看當前正在執行的操作和鎖情況。
如果以上方法都沒有解決問題,建議您將具體的錯誤信息、查詢語句以及集群配置等信息,反饋給客服人員,研發人員會協助進行問題排查。