observerが配置されているノードのNIC負荷が高くなる原因は、一般的にバッチ処理やレプリケーション移行などのバックグラウンドタスクに関連しています。対処の考え方はI/O負荷が高い場合と同様で、通常はタスクの降格や移行・レプリケーション関連パラメータの調整などを行います。本記事では、いくつかの異なる状況について詳細に分析します。
緊急時の対処手順
observerが配置されているノードのNIC負荷が高い場合、一般的に以下のポイントから対処を開始します。
実行中のバックアップタスクを一時停止します。
OCPを使用して、現在のノードでバックアップが実行されていないか確認できます。もしそうであれば、バックアップを一時停止してI/O負荷を軽減できます。
実行中のデータインポート/エクスポートタスクを一時停止します。
OMSを使用して、現在のノードでデータ転送タスクが実行されていないか確認できます。もしそうであれば、必要に応じて一時停止し、I/O負荷を軽減した後に再開できます。データ移行プロジェクトを一時停止する具体的な操作手順は以下のとおりです。実行中のデータ移行プロジェクトのみが一時停止および再開操作をサポートします。データ移行プロジェクトを一時停止すると、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の実行を制限します。
ディスクI/O負荷が高く、特定のSQLを特定した場合、SQLの実行計画にhint max_concurrentを追加してSQLの並列数を制限し、SQLの実行を制限できます。
CREATE OUTLINE outline_name ON sql_id USING HINT /*+max_concurrent(1)*/;