動作モニター
ヘルス・モニターは、システムCPU使用率、ディスク使用量、メモリー使用量およびMySQLサーバー・プロセス(mysqld
)の統計を収集します。統計は、ヘルス・モニターが1分に1回サンプルを取得し、1日分のデータを保持する履歴表に記録されます。また、これらの統計には、問合せ時に現在の読取りがオンデマンドで移入された表でもアクセスできます。
ヘルス・モニターの概要
ヘルス・モニターは、ディスク領域情報、システム・メモリー情報およびプロセス・メモリー情報を60秒ごとにサンプリングし、MySQL Serverのパフォーマンス・スキーマの表に1日分のデータを格納します。使用可能なディスク領域または使用可能なメモリーが特定の事前設定されたしきい値を下回ると、ヘルス・モニターによって警告が発行され、performance_schema.error_log
表に記録されます。
ヘルス・モニターでは、100 GB = 93 GiBのMiB/GiB/TiBストレージ・ユニットが使用されます。
DBシステムで使用可能な合計ストレージには、次のものが含まれます:
- 使用可能なストレージ: ストレージ予約後のディスク領域は、合計ストレージから除外されます。
- 記憶域の予約:
disk_low_space_level
およびdisk_low_space_percent
構成変数より少ないディスク領域。disk_low_space_level
のデフォルト値は5,000 MiBで、disk_low_space_percent
のデフォルト値は合計ストレージの4%です。 - クリティカル・ストレージ:
disk_low_space_critical_level
構成変数によって定義される、クリティカルしきい値を下回るストレージ予約内のディスク領域。これは、ディスクの枯渇を避けるためにシステムが実行可能な最小ディスク領域です。デフォルトのクリティカル・ストレージ領域は2,000 MiBです。
ディスク領域の警告
ディスク領域が使用可能な記憶域の特定の割合を下回ると、ヘルス・モニターは次の警告を発行し、performance_schema.error_log
表に記録します。
WARNING_DISK_USAGE_LEVEL_1
: ディスク領域が使用可能な記憶域の20%を下回る場合。WARNING_DISK_USAGE_LEVEL_2
: ディスク領域が使用可能な記憶域の10%を下回る場合。WARNING_DISK_USAGE_LEVEL_3
: ディスク領域が使用可能な記憶域の5%を下回る場合。
たとえば、合計ストレージが100,000 MiBで、ストレージ予約が次の2つの構成変数のうち少ない場合です。
disk_low_space_level
: デフォルト値は5,000 MiBです。disk_low_space_percent
: 合計ストレージの4%です。つまり、100,000 MiBの4% = 4,000 MiBです。
ストレージ予約は4,000 MiBで、これは2つの構成変数のうち少ない値です。
使用可能なストレージは、合計ストレージからストレージ予約を除外することによって検索できます。
100,000 - 4,000 = 96,000 MiB
ヘルス・モニターは次の警告を発行します:
WARNING_DISK_USAGE_LEVEL_1
: ディスク領域が使用可能な記憶域の20%を下回る場合(20/100*96,000 = 19,200 MiB)。WARNING_DISK_USAGE_LEVEL_2
: ディスク領域が使用可能な記憶域の10%を下回る場合(10/100*96,000 = 9,600 MiB)。WARNING_DISK_USAGE_LEVEL_3
: ディスク領域が使用可能な記憶域の5%を下回る場合(5/100*96,000 = 4,800 MiB)。
ディスク領域の大幅または持続的な不足
ヘルス・モニターでは、次の条件を満たす場合のディスク領域の大幅な不足または持続的な不足が定義されます。
- 重大な不足: ディスク領域は、
disk_low_space_critical_level
で定義されたクリティカルしきい値を下回ります。 - 持続的な不足: ディスク領域はストレージ予約を下回り、
disk_low_space_duration
構成変数によって定義された期間、ストレージ予約に残ります。
ディスク領域が著しくまたは持続的に不足している場合、ヘルス・モニターは次のことを行います。
SUPER_READ_ONLY=ON
: MySQL Serverでシステム変数SUPER_READ_ONLY
をONに設定します。MySQL Serverは、ユーザーや権限に関係なく、新しく受信するすべてのSQL書込み文(UPDATE
、INSERT
、DELETE
およびDDL
)を拒否します。実行中のトランザクションは完了できますが、ディスク領域が再度使用可能になるまで、新しい書込みは禁止されます。サーバーがSUPER_READ_ONLY
モードの場合、HeatWaveクラスタにデータをロードできません。場合によっては、グローバル読取りロック、進行中のコミットまたはメタデータ・ロックによって、ヘルス・モニターが
SUPER_READ_ONLY
システム変数の設定をブロックします。このような場合、health_monitor.disk_fallback_force
変数を設定すると、ヘルス・モニターは、グローバル・ロックを保持しているアクティブな問合せを識別して終了し、SUPER_READ_ONLY
システム変数を設定します。OFFLINE_MODE=ON
: MySQL Serverでシステム変数OFFLINE_MODE
をONに設定します。MySQL Serverは、CONNECTION_ADMIN
権限を持たないクライアントユーザーを切断し、実行中のステートメントを終了してロックを解放し、適切なエラーによって新しい接続をブロックします。super_read_only_disk_full=ON
: ディスク領域が少ないために読取り専用モードがトリガーされたことを示すステータス変数super_read_only_disk_full
をONに設定します。super_read_only_disk_full
ステータス変数の値は、次のいずれかのコマンドを使用して確認できます。SHOW GLOBAL STATUS WHERE variable_name = 'super_read_only_disk_full';
SELECT * FROM performance_schema.global_status WHERE variable_name = 'super_read_only_disk_full';
システム変数は MySQL Serverの動作を変更しますが、ステータス変数は MySQL Serverの状態の静的インジケータです。
通常の操作へのリカバリ
SUPER_READ_ONLY
およびOFFLINE_MODE
が設定されると、ヘルス・モニターは次のことを実行します。
- 1分ごとにディスク領域を確認します。
- 使用可能なディスク領域が回復し、
disk_recovery_time_1
秒以上disk_recovery_level
を超えたままの場合は、OFFLINE_MODE=OFF
を設定します。 - 使用可能なディスク領域が回復し、
disk_recovery_time_2
秒以上経過してもdisk_recovery_level
を超える場合は、SUPER_READ_ONLY=OFF
を設定します。
disk_recovery_time_1
+ disk_recovery_time_2
秒のディスク領域がdisk_recovery_level
を超えると、通常の操作が再開されます。
ディスク領域が回復すると、ヘルス・モニターはシステム変数SUPER_READ_ONLY
およびOFFLINE_MODE
、およびステータス変数super_read_only_disk_full
をクリアします。MySQLインスタンスを再起動して変数をクリアする必要はありません。
再びディスク領域が著しくまたは持続的に不足している場合、ヘルス・モニターは、MySQL Serverでシステム変数SUPER_READ_ONLY
およびOFFLINE_MODE
、およびステータス変数super_read_only_disk_full
をONに再度設定します。
高可用性DBシステムのプライマリ・インスタンスを通常のオペレーティング・モードに戻す前に、ヘルス・モニターは、サーバーが過半数グループでオンラインであることを確認します。ヘルス・モニターは、セカンダリ・インスタンスにSUPER_READ_ONLY
またはOFFLINE_MODE
を設定しません。
リカバリ増分、リカバリ最大サイクルおよびリカバリ・ウィンドウ
MySQL Serverがディスク領域の大幅な不足または持続的な不足からリカバリするたびに、ヘルス・モニターはディスク・リカバリ時間をdisk_recovery_increment
秒増やします。
たとえば、disk_recovery_time_1
= 300秒で、disk_recovery_time_2
= 600秒で、disk_recovery_increment
= 400秒の場合、各サイクルのディスク・リカバリ時間は次のようになります。
- サイクル1:
disk_recovery_time_1
= 300秒、disk_recovery_time_2
= 600秒 - サイクル2:
disk_recovery_time_1
= (300 + 400)秒、disk_recovery_time_2
= (600+400)秒 - サイクル3:
disk_recovery_time_1
= (300+400+400)秒、disk_recovery_time_2
= (600+400+400)秒
状態モニターは、最後のリカバリ・サイクルから、disk_recovery_window
秒の固定ウィンドウ内で最大disk_recovery_max_cycles
回、通常の動作モードにリストアします。たとえば、disk_recovery_max_cycles
が5に設定され、disk_recovery_window
が86,400秒(1日)に設定されている場合、ヘルス・モニターは86,400秒のウィンドウで通常の動作モードに5回リストアできます。重要または持続的な不足が同じウィンドウで6回目に発生した場合、システム変数SUPER_READ_ONLY
およびOFFLINE_MODE
はONに設定されます。
リカバリ回数は、最後のリカバリから disk_recovery_window
秒後にリセットされます。
メモリー警告
使用可能なメモリーが特定のしきい値を下回ると、ヘルス・モニターは次の警告を発行します。
WARNING_MEMORY_USAGE_LEVEL_1
: 使用可能なメモリーが1024 MiBを下回る場合。WARNING_MEMORY_USAGE_LEVEL_2
: 使用可能なメモリーが500 MiB未満の場合。WARNING_MEMORY_USAGE_LEVEL_3
: 使用可能なメモリーが100 MiB未満の場合。
ヘルス・モニターは、MySQLバージョン、グローバル・メモリー使用量および様々な構成設定に関する情報をエラー・ログに記録します。詳細な分析のためにスプレッドシートに簡単に移動できるように、情報はカンマ区切り値として記録されます。
ヘルス・モニター表の表示
ヘルス・モニター・テーブルは、モニタリング・データおよび統計をMySQL Serverのパフォーマンス・スキーマに格納します。
健全性テーブルには、ディスクストレージ情報、システムメモリー情報、およびプロセスメモリー情報が含まれます。
統計表には、システムCPU使用率、ディスク使用量、メモリー使用量およびMySQLサーバー・プロセス(mysqld
)の統計が含まれます。各統計表には、2つのバージョン(オンデマンド・バージョン)があります。オンデマンド・バージョンには、問合せ時に現在の検針が移入され、ヘルス・モニターが1分に1回サンプルを取得し、1日分のデータを保持する履歴バージョンがあります。どちらのバージョンの表にも同じ列があります。
コマンドライン・クライアントの使用
MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、ヘルス・モニター表を表示します。
- DBシステムに接続されているMySQLシェルなどのコマンドライン・クライアント。DB Systemへの接続を参照してください。
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| DEVICE | TIMESTAMP | TOTAL_BYTES | AVAILABLE_BYTES | USE_PERCENT | MOUNT_POINT |
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:12:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:13:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:14:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:15:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:16:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:17:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:18:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:19:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:20:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:21:08 | 53656686592 | 51364134912 | 4.27 | /db |
ヘルス・モニター表
ディスク・ストレージ情報、システム・メモリー情報およびプロセス・メモリー情報を確認するには、ヘルス・モニター表を参照してください。
ヘルス・モニター表の完全なリストは次のとおりです。
performance_schema.health_block_device
: ディスク・ストレージのステータス情報。performance_schema.health_system_memory
: システム・メモリーのステータス情報。performance_schema.health_process_memory
: プロセス・メモリーのステータス情報。performance_schema.system_cpu_stats
: CPU使用率統計。オンデマンドで移入されます。performance_schema.system_cpu_stats_history
: 格納済CPU使用量の統計。performance_schema.system_disk_stats
: ディスク使用量の統計。オンデマンドで移入されます。performance_schema.system_disk_stats_history
: 格納されたディスク使用量統計。performance_schema.system_memory_stats
: メモリー使用量の統計。オンデマンドで移入されます。performance_schema.system_memory_stats_history
: 格納されたメモリー使用量の統計。performance_schema.system_process_stats
: オンデマンドで移入されたプロセス統計およびスレッド統計。performance_schema.system_process_stats_history
: ストアド・プロセスおよびスレッドの統計。performance_schema.error_log
: 警告およびエラー。「エラー・ログの表示」を参照してください。
performance_schema.health_block_device表
ヘルス・モニターは、MySQL Serverのパフォーマンス・スキーマのperformance_schema.health_block_device
表を使用して、使用済および使用可能なディスク領域上のデータをDBシステムに格納します。
表17-1 health_block_deviceパフォーマンス・スキーマ表
列 | Description |
---|---|
DEVICE |
ディスクのデバイス名。 |
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
TOTAL_BYTES |
デバイス上のストレージの合計量(バイト単位)。 |
AVAILABLE_BYTES |
デバイスで使用可能なストレージの容量(バイト単位)。 |
USE_PERCENT |
使用中のディスク領域の割合。 |
MOUNT_POINT |
デバイスのマウント・ポイント。 |
performance_schema.health_system_memory表
ヘルス・モニターは、MySQL Serverのパフォーマンス・スキーマのperformance_schema.health_system_memory
表を使用して、DBシステムによるメモリー使用量に関するデータを格納します
表17-2 health_system_memoryパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
TOTAL_MEMORY |
システムの合計メモリー量(バイト単位)。 |
AVAILABLE |
スワップせずに新しいアプリケーションを起動するために使用可能なメモリー(バイト)。 |
USE_PERCENT |
使用中のメモリーの割合。 |
MEMORY_FREE |
未使用メモリーの量。 |
MEMORY_FS_CACHE |
ファイルシステムのページキャッシュ。 |
SWAP_TOTAL |
スワップメモリーの合計量。 |
SWAP_FREE |
空きスワップメモリーの合計量。 |
performance_schema.health_process_memory表
ヘルス・モニターは、MySQL Serverのパフォーマンス・スキーマのperformance_schema.health_process_memory
表を使用して、DBシステム内のMySQL Serverプロセス(mysqld)によるメモリー使用量に関するデータを格納します。
表17-3 health_process_memoryパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
PROCESS_NAME |
MySQL Serverプロセスの名前。 |
PID |
MySQL Serverプロセスのシステム識別子。 |
VM_RSS |
MySQLサーバー・プロセスの常駐セット・サイズ(バイト単位)。 |
VM_DATA |
MySQL Serverプロセスのデータセグメントのサイズ(バイト単位)。 |
VM_SWAP |
MySQLサーバー・プロセス・スワップ・セグメントのサイズ(バイト単位)。 |
PAGE_FAULTS |
ディスク I/Oを必要とするページ障害の数。 |
performance_schema.system_cpu_stats表
ヘルス・モニターは、DBシステムによるCPU使用量の統計を収集します。統計は、MySQL Serverのパフォーマンススキーマの2つのテーブル、オンデマンドテーブル、および対応する履歴テーブルで使用できます。どちらの表も列が同じです。
MySQL Serverのパフォーマンス・スキーマのperformance_schema.system_cpu_stats
表には、問合せ時にデータ・サンプルが移入されます。performance_schema.system_cpu_stats_history
表には、データ・サンプルが定期的に格納されます。
これらの表の統計は、Linuxシステム・ファイル/proc/stat
から取得されます。
表17-4 system_cpu_statsおよびsystem_cpu_stats_historyパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
CPU |
CPUの行は集計されたCPU使用率データを示し、各番号付き行(cpu0、cpu1など)は個々のプロセスのデータを示します。すべての時間はミリ秒単位です。 |
USER_MS |
ユーザーモードで費やされた時間。 |
NICE_MS |
優先度が低いユーザー・モードで費やされた時間。 |
SYSTEM_MS |
システムモードで費やされた時間。 |
IDLE_MS |
アイドル・タスクに費やされた時間。 |
IOWAIT_MS |
I/Oの完了を待機する時間。 |
IRQ_MS |
ハードウェア割り込みの保守に費やされた時間。 |
SOFTIRQ_MS |
ソフトウェアの割り込みの処理にかかった時間。 |
STEAL_MS |
仮想化された環境で他のオペレーティング・システムの実行に費やされた時間。 |
GUEST_MS |
通常の優先順位で仮想CPUの実行に費やされた時間。 |
GUEST_NICE_MS |
優先度が低い仮想CPUの実行に費やされた時間。 |
performance_schema.system_disk_stats表
ヘルス・モニターは、DBシステムによるディスク使用量の統計を収集します。統計は、MySQL Serverのパフォーマンススキーマの2つのテーブル、オンデマンドテーブル、および対応する履歴テーブルで使用できます。どちらの表も列が同じです。
MySQL Serverのパフォーマンス・スキーマのperformance_schema.system_disk_stats
表には、問合せ時にデータ・サンプルが移入されます。performance_schema.system_disk_stats_history
表には、データ・サンプルが定期的に格納されます。
これらの表の統計は、Linuxシステム・ファイル/proc/diskstats
から取得されます。
表17-5 system_disk_statsおよびsystem_disk_stats_historyパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
DEVICE |
このディスクのデバイス名。 |
READS |
正常に完了した読取りの数。 |
READ_BYTES |
読取りが終了したバイト数 |
READ_TIME_MS |
読取りにかかった時間(ミリ秒)。 |
WRITES |
正常に完了した書込みの数。 |
WRITE_BYTES |
書込みバイト数です。 |
WRITE_TIME_MS |
書込みにかかった時間(ミリ秒)。 |
FLUSHES |
正常に完了したフラッシュ要求の数。 |
FLUSH_TIME_MS |
フラッシュに要した時間(ミリ秒)。 |
performance_schema.system_memory_stats表
ヘルス・モニターは、DBシステムによるメモリー使用量の統計を収集します。統計は、MySQL Serverのパフォーマンススキーマの2つのテーブル、オンデマンドテーブル、および対応する履歴テーブルで使用できます。どちらの表も列が同じです。
MySQL Serverのパフォーマンス・スキーマのperformance_schema.system_memory_stats
表には、問合せ時にデータ・サンプルが移入されます。performance_schema.system_memory_stats_history
表には、データ・サンプルが定期的に格納されます。
これらの表の統計は、Linuxシステム・ファイル/proc/meminfo
から取得されます。
表17-6 system_memory_statsおよびsystem_memory_stats_historyパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
TOTAL_BYTES |
使用可能なシステム・メモリーの合計(バイト単位)。 |
FREE_BYTES |
未使用メモリー。 |
USED_BYTES |
使用メモリーの合計。 |
AVAILABLE_BYTES |
新しいアプリケーションの起動に使用できる推定メモリー(バイト)。 |
BUFFER_BYTES |
RAWディスク・ブロックの一時記憶域に使用されるメモリーの量。 |
CACHED_BYTES |
ディスクから読み取られたファイルのキャッシュに使用されるメモリーの量(ページ・キャッシュ)。 |
SLAB_BYTES |
カーネル内データ構造体のキャッシュに使用されるメモリーの量。 |
SWAP_TOTAL_BYTES |
ディスク上で使用可能なスワップ領域の合計量。 |
SWAP_FREE_BYTES |
現在使用されていないスワップ領域の合計量。 |
SWAP_USED_BYTES |
RAMからスワップアウトされ、一時的にディスク上にあるメモリーの合計量。 |
SWAP_IN |
ディスクからRAMにスワップ・バックされたメモリーの量(KB/秒)。 |
SWAP_OUT |
RAMからディスクにスワップ・アウトされたメモリーの量(KB/秒)。 |
performance_schema.system_process_stats表
ヘルス・モニターは、DBシステムのMySQL Serverプロセスで使用される各スレッドの統計を収集します。統計は、MySQL Serverのパフォーマンススキーマの2つのテーブル、オンデマンドテーブル、および対応する履歴テーブルで使用できます。どちらの表も列が同じです。
MySQL Serverのパフォーマンス・スキーマのperformance_schema.system_process_stats
表には、問合せ時にデータ・サンプルが移入されます。performance_schema.system_process_stats_history
表には、データ・サンプルが定期的に格納されます。
プロセス統計の場合、オンデマンド表は、mysqld
プロセスで使用されるスレッドごとに1行を返します。ただし、履歴表には、mysqld
プロセスで使用されるすべてのスレッドの総計とともに、サンプルごとに1つの行が格納されます。
これらの表の統計は、Linuxシステム・ファイル/proc/self/task/[pid]/stat
から取得されます。
表17-7 system_process_statsおよびsystem_process_stats_historyパフォーマンス・スキーマ表
列 | 内容 |
---|---|
TIMESTAMP |
この行のデータ・サンプルが収集された時間。 |
PID |
プロセスID |
PROCESS_NAME |
プロセス名(mysqld )。
|
TID |
この行に表示される個々のスレッドのスレッドID。 |
THREAD_NAME |
この行に表示される個々のスレッドのインストゥルメントされたスレッド名。 |
STATE |
サンプルの時点のスレッド状態を示す文字: 実行中(R )、中断可能な待機中のスリープ中(S )、中断不可能なディスク・スリープでの待機中(D )、ゾンビ・スレッド(Z )、停止されたシグナルまたはトレース(T )、ページング(W )、停止(X )、ウェイクキル(K )、ウェイク(W )またはパーク状態(P )。
|
UTIME_MS |
このスレッドがユーザーモードで費やした時間(ミリ秒)。 |
STIME_MS |
このスレッドがカーネル・モードで費やした時間(ミリ秒)。 |
CUTIME_MS |
このプロセスの子プロセスがユーザー・モードで費やした時間(ミリ秒)。 |
CSTIME_MS |
このプロセスの子プロセスがカーネル・モードで費やした時間(ミリ秒)。 |
NUM_THREADS |
このプロセス内のスレッドの番号。 |
VSIZE_BYTES |
仮想メモリー・サイズ(バイト)。 |
RSS_BYTES |
プロセスが実メモリー内にあるバイト数(常駐セットサイズ)。 |
RSSLIM_BYTES |
プロセスの常駐セット・サイズに対する制限(バイト)。 |
PROCESSOR |
スレッドが最後に実行されたCPU番号。 |
DELAYACCT_BLKIO_MS |
集計されたブロックI/O遅延(ミリ秒)。 |
GUEST_TIME_MS |
プロセスのゲスト時間(ミリ秒)。 |
CGUEST_TIME_MS |
プロセスの子プロセスのゲスト時間(ミリ秒)。 |
READ_BYTES |
このプロセスがストレージ・レイヤーからフェッチしたバイト数。 |
WRITE_BYTES |
このプロセスがストレージ・レイヤーに送信したバイト数。 |
ヘルス・モニターの変数の表示
ヘルス・モニター変数は、DBシステムのモニタリング・アクティビティの構成設定です。これらの変数の値は変更できません。
コマンドライン・クライアントの使用
MySQLクライアントやMySQLシェルなどのコマンドライン・クライアントを使用して、ヘルス・モニターの変数とその値を表示します。
- 実行中のDBシステム。
- DBシステムに接続されているMySQLクライアントやMySQLシェルなどのコマンドライン・クライアント。DB Systemへの接続を参照してください。
+----------------------------------------------+-------+
| Variable_name | Value |
+----------------------------------------------+-------+
| health_monitor.disk_fallback_enable | ON |
| health_monitor.disk_fallback_force | OFF |
| health_monitor.disk_low_space_critical_level | 2000 |
| health_monitor.disk_low_space_duration | 300 |
| health_monitor.disk_low_space_level | 5000 |
| health_monitor.disk_low_space_percent | 4 |
| health_monitor.disk_monitored | /db |
| health_monitor.disk_recovery_enable | ON |
| health_monitor.disk_recovery_increment | 300 |
| health_monitor.disk_recovery_level | 5 |
| health_monitor.disk_recovery_max_cycles | 3 |
| health_monitor.disk_recovery_time_1 | 300 |
| health_monitor.disk_recovery_time_2 | 300 |
| health_monitor.disk_recovery_window | 86400 |
| health_monitor.disk_retention | 86400 |
| health_monitor.disk_running | ON |
| health_monitor.disk_sample_rate | 60 |
| health_monitor.disk_usage_warning_level_1 | 20 |
| health_monitor.disk_usage_warning_level_2 | 10 |
| health_monitor.disk_usage_warning_level_3 | 5 |
...
+----------------------------------------------+-------+
35 rows in set (0.01 sec)
ヘルス・モニターの変数
ヘルス・モニターのすべてのシステム変数には接頭辞health_monitor
が付きます。DBシステムのデフォルトから変数の値を変更することはできません。
次の表では
health_monitor.
接頭辞が省略されています。たとえば、disk_fallback_enable
は、実際にはhealth_monitor.disk_fallback_enable
です。
表17-8ヘルス・モニターのシステム変数
システム変数 | デフォルトの値 | Description |
---|---|---|
disk_fallback_enable |
ON | ディスク領域が著しくまたは持続的に不足している場合、ヘルス・モニターは、MySQL Serverでシステム変数SUPER_READ_ONLY およびOFFLINE_MODE をONに設定します。
|
disk_fallback_force |
オフ | グローバル・メタデータ・ロックを保持しているフォアグラウンド問合せを終了し、SUPER_READ_ONLY の設定を再試行します。
|
disk_low_space_critical_level |
2000 | クリティカルなディスク領域下限しきい値(MiB)。使用可能なディスク領域がこの値を一定期間下回る場合、ヘルス・モニターはMySQL ServerでSUPER_READ_ONLY およびOFFLINE_MODE モードを設定します。
|
disk_low_space_duration |
300 | ヘルス・モニターがMySQL ServerでSUPER_READ_ONLY およびOFFLINE_MODE モードを設定する前に、使用可能なディスク領域が disk_low_space_level またはdisk_low_space_percent (いずれか小さい方)を下回る期間(秒単位)。
|
disk_low_space_level |
5000 | MiBのストレージ予約の下限領域しきい値。使用可能なディスク領域が、合計使用可能ストレージのこのパーセンテージをdisk_low_space_duration の値より長く下回ると、ヘルス・モニターは、MySQL ServerでSUPER_READ_ONLY およびOFFLINE_MODE モードを設定します。
|
disk_low_space_percent |
4 | ストレージ予約の下限領域のしきい値であり、パーセンテージで表されます。使用可能なディスク領域が、合計使用可能ストレージのこのパーセンテージをdisk_low_space_duration の値より長く下回ると、ヘルス・モニターは、MySQL ServerでSUPER_READ_ONLY およびOFFLINE_MODE モードを設定します。
|
disk_monitored |
/db | ディスク統計のマウント・ポイント。 |
disk_retention |
86400 |
各データ・サンプルがディスク使用状況データの履歴表に保持される秒数。 最小値は1秒で、デフォルトは86400秒(1日)で、最大値は864000秒(10日)です。
|
disk_recovery_enable |
ON | 持続的または重大な不足からの回復を有効にするには、変数をONに設定し、持続的または重大な不足からの回復を無効にするにはOFFに設定します。 |
disk_recovery_level |
5% | ストレージ予約を上回る合計ディスク領域の割合。
|
disk_recovery_time_1 |
300秒 | ヘルス・モニターでOFFLINE_MODE = OFF が設定されるまでに、使用可能なストレージがdisk_recovery_level を超える必要がある時間(秒単位)。
|
disk_recovery_time_2 |
300秒 | ヘルス・モニターでSUPER_READ_ONLY = OFF が設定されるまでに、使用可能なストレージがdisk_recovery_time_1 の後にdisk_recovery_level を超える必要がある追加の時間(秒)。
|
disk_recovery_max_cycles |
3サイクル | MySQLサーバーをdisk_recovery_cycle_window 時間枠内に通常の動作モードに戻すことができる最大回数。
|
disk_recovery_window |
86400秒 | 最後に成功したリカバリ・サイクルが経過してからリカバリ数がリセットされるまでの時間(秒)。値0は、リカバリ数がリセットされないことを意味します。 |
disk_recovery_increment |
300秒 | リカバリ・サイクルごとにdisk_recovery_time_1 およびdisk_recovery_time_2 リカバリ・タイマーを増やす時間(秒)。
|
disk_running |
ON | ヘルス・モニターのディスク・モニターのアクティブ状態。 |
disk_sample_rate |
60 | ディスク・データ収集の頻度(秒)。デフォルトでは、データは60秒ごとに収集されます。最小サンプルレートは1 (毎秒)で、最大は86400 (1日に1回)です。 |
disk_usage_warning_level_1 |
20 | 定義済のdisk_low_space_level を上回る、使用可能なディスク領域のパーセンテージ。使用可能なディスク領域がこのレベルを下回ると、警告WARNING_DISK_USAGE_LEVEL_1 が発生します。
|
disk_usage_warning_level_2 |
10 | 定義済のdisk_low_space_level を超える、使用可能なディスク領域のパーセンテージ。使用可能なディスク領域がこのレベルを下回ると、警告WARNING_DISK_USAGE_LEVEL_2 が発生します。
|
disk_usage_warning_level_3 |
5 | 定義済のdisk_low_space_level を超える、使用可能なディスク領域のパーセンテージ。使用可能なディスク領域がこのレベルを下回ると、警告WARNING_DISK_USAGE_LEVEL_3 が発生します。
|
memory_reporting |
ON | メモリー・データのレポートを有効にします。 |
memory_retention |
86400 |
各データ・サンプルがメモリー使用量データの履歴表に保持される秒数。 最小値は1秒で、デフォルトは86400秒(1日)で、最大値は864000秒(10日)です。 |
memory_running |
ON | ヘルス・モニターのメモリー・モニターのアクティブ状態。 |
memory_sample_rate |
60 | メモリー・データ収集の頻度(秒)。デフォルトでは、データは60秒ごとに収集されます。最小サンプルレートは1 (毎秒)で、最大は86400 (1日に1回)です。 |
memory_usage_warning_level_1 |
1024 | 使用可能なメモリーの量(MiB)。使用可能なメモリーがこのレベルを下回ると、警告WARNING_MEMORY_USAGE_LEVEL_1 が発生します。
|
memory_usage_warning_level_2 |
500 | 使用可能なメモリーの量(MiB)。使用可能なメモリーがこのレベルを下回ると、警告WARNING_MEMORY_USAGE_LEVEL_2 が発生します。
|
memory_usage_warning_level_3 |
100 | 使用可能なメモリーの量(MiB)。使用可能なメモリーがこのレベルを下回ると、警告WARNING_MEMORY_USAGE_LEVEL_3 が発生します。
|
status_interval |
10 | ステータス・メッセージをエラー・ログ表に送信する頻度(disk_sample_rate の倍数)。たとえば、status_interval = 10 秒でdisk_sample_rate = 60 秒の場合、ヘルス・モニターは600秒ごとにステータス・メッセージをエラー・ログ表に送信します。
|
system_cpu_stats_history |
ON | システムCPU使用率統計が収集され、パフォーマンス・スキーマ表system_cpu_stats_history に格納されるかどうか。これらの統計が格納されていない場合でも、system_cpu_stats 表を問い合せることで、必要に応じてスナップショットにアクセスできます。
|
system_disk_stats_history |
ON | システム・ディスク使用状況統計が収集され、パフォーマンス・スキーマ表system_memory_stats_history に格納されるかどうか。これらの統計が格納されていない場合でも、system_memory_stats 表を問い合せることで、必要に応じてスナップショットにアクセスできます。
|
system_memory_stats_history |
ON | システム・メモリー使用量の統計が収集され、パフォーマンス・スキーマ表system_disk_stats_history に格納されるかどうか。これらの統計が格納されていない場合でも、system_disk_stats 表を問い合せることで、必要に応じてスナップショットにアクセスできます。
|
system_process_stats_history |
ON | MySQLサーバー・プロセス(mysqld )統計が収集され、パフォーマンス・スキーマ表system_process_stats_history に格納されるかどうか。これらの統計が格納されていない場合でも、system_process_stats 表を問い合せることで、必要に応じてスナップショットにアクセスできます。
|
system_retention |
86400 |
各データ・サンプルがシステム統計およびプロセス統計の履歴表に保持される秒数。 最小値は1秒で、デフォルトは86400秒(1日)で、最大値は864000秒(10日)です。 |
system_running |
ON | システム統計がヘルス・モニターによって収集されるかどうか。これをON に設定すると、システムCPU使用率、ディスク使用量、メモリー使用量およびMySQLサーバー・プロセス(mysqld )の統計表が使用可能になり、システム変数がON に設定されている場合、対応する履歴表が移入されます。
|
system_sample_rate |
60 | システム統計収集の頻度(秒)。デフォルトでは、データは60秒ごとに収集されます。最小サンプルレートは1 (毎秒)で、最大は86400 (1日に1回)です。 |
ヘルス・モニターのメッセージ
ヘルス・モニターのエラー、警告およびステータス更新は、performance_schema.error_log
に記録されます。ヘルス・モニターは、TiBをT、GiBをG、MiBをエラー・ログのMと略します。たとえば、306.6G = 306.6 GiB = 329.2 GBです。
表17-9ヘルス・モニターのメッセージ
メッセージ・タイプ | Description |
---|---|
ステータス更新 | ヘルス・モニターは、sample_rate * status_interval で定義された秒数に従ってルーチン・ステータス更新を発行します。例:
|
しきい値警告 | 使用可能な領域の量が、disk_usage_warning_level_* で定義されたしきい値の1つを下回ると、ヘルス・モニターは警告を発行します。次の例は、disk_usage_warning_level_2 (領域の下限を超える合計領域の4%として定義されている)の警告を示しています:
|
disk_low_space_duration の警告
|
使用可能なディスク領域が18 GiBの領域の下限を下回ると、ヘルス・モニターはフォールバック・タイマーを起動して警告を発行します。例:
|
OFFLINE/SUPER_READ_ONLY モードの警告
|
使用可能なディスク領域が領域の下限を下回ったままdisk_low_space_duration 秒を超えると、ヘルス・モニターは、サーバーをSUPER_READ_ONLY およびOFFLINE_MODE に配置します。例: 「SUPER_READ_ONLYおよびOFFLINE_MODEの問題の解決」を参照してください。
|
クリティカル警告 | 使用可能なディスク領域がdisk_low_space_critical_level を下回ると、任意の期間、ヘルス・モニターは、サーバーをSUPER_READ_ONLY モードにします。例:
|
タイマー取消済警告 | 使用可能なディスク領域が、disk_low_space_duration 秒が経過する前に領域の下限よりも増えると、フォールバック・モード・タイマーが取り消され、ヘルス・モニターがステータス・メッセージまたは警告メッセージ(使用可能なディスク領域が引き続き警告の範囲内の場合)を発行します。例:[Warning] [MY-013695] [Health] Disk: Low Level (18M): Fallback Timer Canceled [Warning] [MY-013695] [Health] Disk: Warning Level 1 (107M): monitored='/db', available=79M, total=466M, used=82.9%, low limit=18M, critical=10M, recovery=40M, warnings=107M/62M/40M |
メモリー警告 | 使用可能なメモリーがmemory_usage_warning_level_* で定義されたしきい値の1つを下回ると、ヘルス・モニターは、メモリー診断の詳細がカンマ区切り値(csv)に含まれる警告を発行します。次の例のcsvデータは、スペースの制約のために削除されています。 [Warning] [MY-013695] [Health] MEMORY: WARNING LEVEL 1 (1.0G): available=950M, total=7.5G, used=87.6%, mysqld=5.9G, warnings=1.0G/500M/100M [Warning] [MY-013695] [Health] [Warning] [MY-013695] [Health] ===== MEMORY DIAGNOSTICS BEGIN (csv) ===== --------------------------------------- TOTAL ALLOCATED MEMORY AND BUFFER SIZES --------------------------------------- keyword,value mysql_version,8.0.33 total_allocated,15121493496 innodb_buffer_pool_size,13958643712 join_buffer_size,262144 ---------------------------------------- MEMORY AGGREGATION PER LOGICAL COMPONENT ---------------------------------------- component,current_count,current_alloc,max_alloc,min_alloc ...<csv data>... ----------------------- MEMORY USAGE PER THREAD ----------------------- thread_id,user,current_count_used,current_allocated,current_avg_alloc,current_max_alloc,total_allocated ...<csv data>... ----------------------- MEMORY USAGE PER USER ----------------------- user,current_count_used,current_allocated,current_avg_alloc,current_max_alloc,total_allocated ...<csv data>... ------------------- PROCESSLIST DETAILS ------------------- thd_id,conn_id,user,db,command,state,time,current_statement,execution_engine,statement_latency,progress, lock_latency,cpu_latency,rows_examined,rows_sent,rows_affected,tmp_tables,tmp_disk_tables,full_scan, last_statement,last_statement_latency,current_memory,last_wait,last_wait_latency,source,trx_latency, trx_state,trx_autocommit,pid,program_name ...<csv data>... --------------- SESSION DETAILS --------------- thd_id,conn_id,user,db,command,state,time,current_statement,execution_engine,statement_latency,progress, lock_latency,cpu_latency,rows_examined,rows_sent,rows_affected,tmp_tables,tmp_disk_tables,full_scan, last_statement,last_statement_latency,current_memory,last_wait,last_wait_latency,source,trx_latency, trx_state,trx_autocommit,pid,program_name ...<csv data>... -------------------------------------------------------- CURRENT STATEMENT PER THREAD ORDERED BY STATEMENT MEMORY -------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE ...<csv data>... ---------------------------------------------------------- CURRENT STATEMENT PER THREAD FOR THREADS USING MOST MEMORY ---------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE,thread_id ...<csv data>... ---------------------------------------------------------- STATEMENT HISTORY PER THREAD FOR THREADS USING MOST MEMORY ---------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE,thread_id ...<csv data>... ----------------------------- EVENTS ALLOCATING MOST MEMORY ----------------------------- processlist_id,processlist_user,thread_id,event_name,count_alloc,count_free,current_count_used, current_number_of_bytes_used ...<csv data>... ---------------------- BUFFER POOL STATISTICS ---------------------- POOL_ID,POOL_SIZE,FREE_BUFFERS,DATABASE_PAGES,OLD_DATABASE_PAGES,MODIFIED_DATABASE_PAGES,PENDING_DECOMPRESS, PENDING_READS,PENDING_FLUSH_LRU,PENDING_FLUSH_LIST,PAGES_MADE_YOUNG,PAGES_NOT_MADE_YOUNG,PAGES_MADE_YOUNG_RATE, PAGES_MADE_NOT_YOUNG_RATE,NUMBER_PAGES_READ,NUMBER_PAGES_CREATED,NUMBER_PAGES_WRITTEN,PAGES_READ_RATE, PAGES_CREATE_RATE,PAGES_WRITTEN_RATE,NUMBER_PAGES_GET,HIT_RATE,YOUNG_MAKE_PER_THOUSAND_GETS, NOT_YOUNG_MAKE_PER_THOUSAND_GETS,NUMBER_PAGES_READ_AHEAD,NUMBER_READ_AHEAD_EVICTED,READ_AHEAD_RATE, READ_AHEAD_EVICTED_RATE,LRU_IO_TOTAL,LRU_IO_CURRENT,UNCOMPRESS_TOTAL,UNCOMPRESS_CURRENT ...<csv data>... |
関連トピック