IBM Cloud サポート統合
パフォーマンスの問題について、 IBM Cloud サポートにいつ、どのように連絡すればよいかを知る。
セルフサービス・リソース
チケットを開く前に、以下を確認してください:
- IBM Cloud データベース・ドキュメント
- MongoDB ドキュメンテーション
- IBM Cloud ステータスページ
- コミュニティ・フォーラムとスタック・オーバーフロー
IBM サポートに連絡する場合
以下に該当する場合は、サポートにご連絡ください:
- このガイドに従った後でも、パフォーマンスの問題が解決しない。
- 最適化したにもかかわらず、レプリケーションの遅延が続いている。
- ディスクのレイテンシは、ワークロードが急増しても高いままだ。
- インフラレベルの問題が疑われる。
- スケーリング後の予期せぬ動作。
- 派遣の健康問題。
- バックアップやリストアの問題
サポートに連絡する前に
以下の情報を収集します。
-
デプロイメントの詳細
- 配備ID(CRN)
- リージョンとアベイラビリティ・ゾーン
- 現在の計画とリソース
- MongoDB のバージョン
-
問題の詳細
- 問題の発生時刻(タイムゾーン付き)
- 観察された症状
- アプリケーションへの影響
- 最近の変更(コード、コンフィギュレーション、スケーリング)
-
パフォーマンス・データ
- Sysdigによるモニタリングのスクリーンショット
- 問題を引き起こすクエリー例
- 診断コマンドからの出力
- Activity Tracker 発行期間中のイベント
-
MongoDB 診断学
# Collect diagnostic data mongo "your-connection-string" --eval " printjson(db.serverStatus()); printjson(db.currentOp()); printjson(rs.status()); " > mongodb-diagnostics.json
サポート・チケットのオープン
IBM Cloud コンソールを使用する場合
- トップメニューの「 サポート 」に移動します。
- 「ケース の作成」 をクリックします。
- セレクト Databases for MongoDB.
- 重大度レベルを選択します。
- 詳しく説明してください。
- 診断ファイルを添付する。
IBM Cloud CLI の使用
# Create support case
ibmcloud support case-create \
--subject "MongoDB Performance Issue" \
--description "Detailed description of issue" \
--severity 2 \
--offering databases-for-mongodb
重大度レベル
| 重大度 | 説明 | 応答時間 |
|---|---|---|
| 1 (重大) | 生産停止、データ損失 | 1 時間 |
| 2(高) | パフォーマンスの大幅な低下 | 2 時間 |
| 3(ミディアム) | 中程度の影響、回避策あり | 4 時間 |
| 4(低い) | 一般的な質問、機能要望 | 8 時間 |
エスカレーション手順
予想される期間内に問題が解決しない場合:
- 緊急にサポートケースを更新してください。
- IBM アカウントチームまでお問い合わせください。
- クリティカルな問題については、管理者にエスカレーションを要請する。
ベストプラクティスをサポートする
- 前もって完全な情報を提供する。
- サポート依頼に迅速に対応する。
- 提案された解決策を、まず非本番環境でテストする。
- 将来の参考のために、解決策を文書化する。
クイックリファレンス:診断コマンド
パフォーマンスのトラブルシューティングに不可欠な MongoDB コマンド。
| コマンド | 目的 | キー・メトリック | 正常値 |
|---|---|---|---|
db.serverStatus() |
サーバー全体の統計 | CPU、メモリ、接続 | 仕事量によって異なる |
db.serverStatus().connections |
接続統計 | 現在、利用可能 | < 利用可能な80%未満 |
db.serverStatus().opcounters |
オペレーション・カウンター | 挿入、クエリ、更新、削除 | ベースライン依存 |
db.serverStatus().locks |
統計のロック | グローバルロック時間 | < 総時間の10%未満 |
db.serverStatus().wiredTiger.cache |
キャッシュ統計 | キャッシュ・ヒット率 |
|
db.currentOp() |
現在の事業 | アクティブなクエリー、ロック | 長期作戦はほとんどない |
db.currentOp({ waitingForLock: true }) |
ロック待ちオペレーション | ロック競合 | 空でなければならない |
rs.status() |
レプリカセットの状態 | レプリケーション・ラグ、メンバーの健康状態 | ラグ < 1秒 |
rs.printSecondaryReplicationInfo() |
レプリケーション・ラグの詳細 | セカンダリーあたりのラグ | ラグ < 1秒 |
db.collection.stats() |
収集統計 | サイズ、インデックスサイズ、ドキュメント数 | 成長を監視する |
db.collection.find().explain("executionStats") |
クエリ実行計画 | 実行時間、調査された文書 | インデックスを使用する |
db.system.profile.find() |
遅いクエリーログ | スローオペレーション | 定期的な見直し |
sh.status() |
シャーディングの状態(該当する場合) | チャンク分配 | 均等配分 |
db.adminCommand({ top: 1 }) |
コレクション利用統計 | ホットコレクション | 最適化ターゲットの特定 |
db.printReplicationInfo() |
オプログ情報 | オプログのサイズ、時間範囲 | 回復には十分 |
迅速な診断ワークフロー
// 1. Check overall health
db.serverStatus().ok // Should return 1
// 2. Check connections
var conn = db.serverStatus().connections;
print("Connections: " + conn.current + "/" + conn.available);
// 3. Check replication (if replica set)
rs.status().ok // Should return 1
// 4. Check for slow operations
db.currentOp({ "secs_running": { $gt: 5 } })
// 5. Check cache efficiency
var cache = db.serverStatus().wiredTiger.cache;
var hitRatio = 1 - (cache["pages read into cache"] /
(cache["pages read into cache"] + cache["pages requested from the cache"]));
print("Cache hit ratio: " + (hitRatio * 100).toFixed(2) + "%");
// 6. Check for lock contention
db.currentOp({ waitingForLock: true })