ヘルス・モニター
ヘルス・モニターは、システムCPU使用率、ディスク使用率、メモリー使用量およびMySQLサーバー・プロセス(mysqld
)の統計を収集します。統計は、ヘルス・モニターが1分に1回サンプルを取得し、1日分のデータを保持する履歴表に記録されます。問合せ時にオンデマンドで現在の読取りが移入された表のこれらの統計にアクセスすることもできます。
状態モニターの概要
ヘルス・モニターは、ディスク領域情報、システム・メモリー情報およびプロセス・メモリー情報を60秒ごとにサンプリングし、1日分のデータをMySQL Serverのパフォーマンス・スキーマ内の表に格納します。使用可能なディスク領域または使用可能なメモリーが特定の事前設定されたしきい値を下回ると、ヘルス・モニターは警告を発行し、それを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
: Sets the system variables,SUPER_READ_ONLY
, to ON in the MySQL Server.The MySQL Server rejects all new incoming SQL write statements (UPDATE
,INSERT
,DELETE
, andDDL
), regardless of users and privileges.トランザクションの実行は完了できますが、ディスク領域が再度使用可能になるまで、新しい書込みは禁止されます。サーバーがSUPER_READ_ONLY
モードの場合、データをHeatWaveにロードできません。場合によっては、グローバル読取りロック、進行中のコミットまたはメタデータ・ロックによって、ヘルス・モニターで
SUPER_READ_ONLY
システム変数の設定がブロックされます。このような場合、health_monitor.disk_fallback_force
変数を設定すると、ヘルス・モニターは、グローバル・ロックを保持するアクティブな問合せを識別して終了し、SUPER_READ_ONLY
システム変数を設定します。OFFLINE_MODE=ON
: Sets the system variable,OFFLINE_MODE
, to ON in the MySQL Server.MySQL Serverは、CONNECTION_ADMIN
特権を持たないクライアントユーザーを切断し、実行中のステートメントを終了してロックを解放し、適切なエラーによって新しい接続をブロックします。super_read_only_disk_full=ON
: Sets the status variable,super_read_only_disk_full
, to ON indicating that read-only mode was triggered due to low disk space.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分に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 usage statistics, populated on demand.performance_schema.system_cpu_stats_history
: Stored CPU usage statistics.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パフォーマンス・スキーマ表
列 | 説明 |
---|---|
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表
Health Monitor collects statistics for CPU usage by the DB system.統計は、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 |
The cpu row shows the aggregated CPU usage data, and each numbered row (for example, cpu0, cpu1) shows data for an individual process.すべての時間はミリ秒単位です。 |
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行を返します。ただし、履歴表には、サンプルごとに1つの行が格納され、mysqld
プロセスで使用されるすべてのスレッドの合計が集計されます。
これらの表の統計は、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ヘルス・モニターのシステム変数
システム変数 | デフォルトの値 | 説明 |
---|---|---|
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サイクル | disk_recovery_cycle_window 時間枠内でMySQLサーバーを通常の動作モードに戻すことができる最大回数。
|
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 (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 (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 (1秒ごと)で、最大は86400 (1日に1回)です。 |
ヘルス・モニターのメッセージ
ヘルス・モニターのエラー、警告およびステータス更新は、performance_schema.error_log
に記録されます。ヘルス・モニターでは、エラー・ログのTiBはT、GiBはG、MiBはMと略されます。たとえば、306.6G = 306.6 GiB = 329.2 GBです。
表17-9ヘルス・モニターのメッセージ
メッセージのタイプ | 説明 |
---|---|
ステータス更新 | ヘルス・モニターは、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 モードの警告
|
If the available disk space remains below the low space limit for more than disk_low_space_duration seconds, the Health Monitor puts the server into SUPER_READ_ONLY and 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>... |
関連トピック