observerが配置されているノードのNIC負荷が高くなる原因は、一般的にバッチ処理や複製移行などのバックグラウンドタスクに関連しています。対処方法はIO負荷が高い場合と同様で、通常はタスクのダウングレードや移行・複製関連パラメータの調整などが行われます。本記事では、いくつかの異なる状況について詳細に分析しています。
緊急時の対応手順
observerが配置されているノードのNIC負荷が高い場合、一般的に以下のいくつかの側面から対処します。
実行中のバックアップタスクを一時停止します。
OCPを使用して、現在のノードでバックアップが実行されているかどうかを確認できます。もしそうであれば、バックアップを一時停止することで、IOストレスを軽減できます。
実行中のデータインポート/エクスポートタスクを一時停止します。
OMSを使用して、現在のノードでデータ転送タスクが実行されているかどうかを確認できます。もしそうであれば、必要に応じて一時停止し、IOストレスを軽減した後に再開できます。データ移行プロジェクトを一時停止する具体的な操作手順は以下のとおりです。実行中のデータ移行プロジェクトのみが一時停止および再開操作をサポートしています。データ移行プロジェクトを一時停止すると、OMSはアーキテクチャタスクリスト内で実行中のサブタスクを中止し、その後のすべてのサブタスクのスケジューリングを自動的に終了します。
その後、一時停止または失敗したデータ移行プロジェクトを手動で再開できます。OMSは、アーキテクチャタスクリストから、最初の待機状態のタスクから順番に各サブタスクを実行します。
バックグラウンドタスクのネットワーク帯域幅を低下させます。
以下のコマンドを使用して、バックグラウンドタスクのネットワーク帯域幅を低下させることができます:
alter system set sys_bkgd_net_percentage=30; --デフォルト値は60clog転送圧縮を有効にします。
現在のノードのNIC負荷が高い場合、ログ転送圧縮を有効にすることを検討できます。
log_transport_compress_allパラメータを設定することで、ログ転送圧縮を有効にできます。このパラメータのデフォルト値はFalseであり、ログ転送圧縮は無効です。このパラメータの変更は、再起動なしで即時に反映されます。構文は以下のとおりです:ALTER SYSTEM SET log_transport_compress_all = TRUE ;高負荷のSQLの実行を制限します。
ディスクIOが高く、特定のSQLが特定された場合、SQLの実行計画にhint max_concurrentを追加して、SQLの並列処理を制限し、SQLの制限を実現できます。
CREATE OUTLINE outline_name ON sql_id USING HINT /*+max_concurrent(1)*/;