tiup cluster check
正式な本番環境の場合、環境を稼働させる前に、クラスターが最高のパフォーマンスを発揮していることを確認するために一連のチェックを実行する必要があります。手動チェック手順を簡素化するために、 TiUP クラスタ には、指定したクラスタのターゲット マシンのハードウェアおよびソフトウェア環境が正常に動作するための要件を満たしているかどうかをチェックするcheck
コマンドが用意されています。
チェック項目一覧
オペレーティング システムのバージョン
デプロイされたマシンのオペレーティング システムのディストリビューションとバージョンを確認します。現在、CentOS 7 のみの展開がサポートされています。互換性向上のため、今後のリリースではさらに多くのシステム バージョンがサポートされる可能性があります。
CPU EPOLLEXCLUSIVE
対象マシンのCPUがEPOLLEXCLUSIVEをサポートしているか確認してください。
ヌマクトル
ターゲット マシンに numactl がインストールされているかどうかを確認します。ターゲット マシン上で結合コアが構成されている場合は、numactl をインストールする必要があります。
システム時刻
対象マシンのシステム時刻が同期しているか確認してください。ターゲットマシンのシステム時間を中央制御マシンのシステム時間と比較し、その偏差が一定のしきい値 (500ms) を超えた場合にエラーを報告します。
システムのタイムゾーン
対象マシンのシステムタイムゾーンが同期しているか確認してください。これらのマシンのタイム ゾーン構成を比較し、タイム ゾーンが一致しない場合はエラーを報告します。
時刻同期サービス
ターゲット マシン上で時刻同期サービスが構成されているかどうかを確認します。つまり、ntpd が実行されているかどうかを確認します。
スワップパーティショニング
ターゲット マシンでスワップ パーティショニングが有効になっているかどうかを確認します。スワップ パーティショニングを無効にすることをお勧めします。
カーネルパラメータ
次のカーネルパラメータの値を確認してください。
net.ipv4.tcp_tw_recycle
:0net.ipv4.tcp_syncookies
:0net.core.somaxconn
: 32768vm.swappiness
:0vm.overcommit_memory
:0または1fs.file-max
: 1000000
透過的巨大ページ (THP)
ターゲット マシンで THP が有効になっているかどうかを確認します。 THP を無効にすることをお勧めします。
システム制限
/etc/security/limits.conf
ファイルの制限値を確認します。
<deploy-user> soft nofile 1000000
<deploy-user> hard nofile 1000000
<deploy-user> soft stack 10240
<deploy-user>
は TiDB クラスターをデプロイして実行するユーザーで、最後の列はシステムに必要な最小値です。
SELinux
SELinux が有効になっているかどうかを確認します。 SELinux を無効にすることをお勧めします。
ファイアウォール
FirewallD サービスが有効になっているかどうかを確認します。 FirewallD サービスを無効にするか、TiDB クラスター内の各サービスに許可ルールを追加することをお勧めします。
irqバランス
irqbalance サービスが有効になっているかどうかを確認します。 irqbalance サービスを有効にすることをお勧めします。
ディスクマウントオプション
ext4 パーティションのマウント オプションを確認します。マウント オプションに nodelalloc オプションと noatime オプションが含まれていることを確認してください。
ポートの使用状況
トポロジで定義されているポート (自動補完のデフォルト ポートを含む) がターゲット マシン上のプロセスによってすでに使用されているかどうかを確認します。
注記:
ポート使用状況チェックでは、クラスターがまだ起動されていないことを前提としています。クラスターがすでにデプロイされ、開始されている場合、この場合はポートが使用されている必要があるため、クラスターのポート使用状況チェックは失敗します。
CPUコア番号
対象マシンのCPU情報を確認してください。本番クラスターの場合、CPU 論理コアの数は 16 以上であることが推奨されます。
注記:
CPUコア番号はデフォルトではチェックされません。チェックを有効にするには、コマンドに
-enable-cpu
オプションを追加する必要があります。
メモリー容量
対象マシンのメモリサイズを確認してください。本番クラスターの場合、合計メモリ容量は 32 GB 以上であることが推奨されます。
注記:
デフォルトではメモリサイズはチェックされません。チェックを有効にするには、コマンドに
-enable-mem
オプションを追加する必要があります。
Fio ディスクのパフォーマンス テスト
フレキシブル I/O テスター (fio) を使用して、 data_dir
が配置されているディスクのパフォーマンスをテストします。これには、次の 3 つのテスト項目が含まれます。
- fio_randread_write_latency
- fio_randread_write
- fio_randread
注記:
fio ディスクのパフォーマンス テストは、デフォルトでは実行されません。テストを実行するには、コマンドに
-enable-disk
オプションを追加する必要があります。
構文
tiup cluster check <topology.yml | cluster-name> [flags]
- クラスターがまだデプロイされていない場合は、クラスターのデプロイに使用されるトポロジー.ymlファイルを渡す必要があります。このファイルの内容に従って、 tiup-cluster は対応するマシンに接続してチェックを実行します。
- クラスターがすでにデプロイされている場合は、チェック オブジェクトとして
<cluster-name>
を使用できます。 - 既存のクラスターのスケールアウト YAML ファイルをチェックする場合は、
<scale-out.yml>
と<cluster-name>
の両方をチェック オブジェクトとして使用できます。
注記:
チェックに
<cluster-name>
を使用する場合は、コマンドに--cluster
オプションを追加する必要があります。
オプション
- 適用する
- 失敗したチェック項目を自動的に修復しようとします。現在、 tiup-cluster は次のチェック項目の修復のみを試みます。
- SELinux
- ファイアウォール
- irqバランス
- カーネルパラメータ
- システム制限
- THP (透明な巨大ページ)
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
注記:
tiup cluster check
では、次のコマンド形式を使用した既存のクラスターのscale-out.yml
ファイルの修復もサポートされています。
tiup cluster check <cluster-name> scale-out.yml --cluster --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
- 集まる
デプロイ済みのクラスターをチェックすることを示します。
データ型:
BOOLEAN
このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。コマンド形式:
tiup cluster check <topology.yml | cluster-name> --cluster [flags]
注記:
tiup cluster check <cluster-name>
コマンドを使用する場合は、--cluster
オプションtiup cluster check <cluster-name> --cluster
を追加する必要があります。
tiup cluster check
次のコマンド形式を使用して、既存のクラスターのscale-out.yml
ファイルを確認することもサポートしています。
tiup cluster check <cluster-name> scale-out.yml --cluster --user root [-p] [-i /home/root/.ssh/gcp_rsa]
-N、--node
- チェックするノードを指定します。このオプションの値は、ノード ID のカンマ区切りリストです。ノード ID は、
tiup cluster display
コマンドによって返されるクラスター ステータス テーブルの最初の列から取得できます。 - データ型:
STRINGS
- このオプションがコマンドで指定されていない場合、デフォルトですべてのノードがチェックされます。
注記:
-R, --role
オプションを同時に指定した場合は、-N, --node
と-R, --role
の両方の指定に一致するサービスノードだけがチェックされます。
-R、--役割
- チェックするロールを指定します。このオプションの値は、ノードの役割のカンマ区切りのリストです。ノードの役割は、
tiup cluster display
コマンドによって返されるクラスター状態テーブルの 2 番目の列から取得できます。 - データ型:
STRINGS
- このオプションがコマンドで指定されていない場合、デフォルトですべてのロールがチェックされます。
注記:
-N, --node
オプションを同時に指定した場合は、-N, --node
と-R, --role
の両方の指定に一致するサービスノードだけがチェックされます。
--enable-cpu
- CPUコア番号の確認を有効にします。
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
--enable-disk
- fio ディスクのパフォーマンス テストを有効にします。
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
--enable-mem
- メモリサイズチェックを有効にします。
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
--u、--user
- ターゲット マシンに接続するためのユーザー名を指定します。指定されたユーザーは、ターゲット マシン上でパスワードなしの sudo root権限を持っている必要があります。
- データ型:
STRING
- コマンドにこのオプションを指定しない場合は、コマンドを実行したユーザーがデフォルト値として使用されます。
注記:
このオプションは、
-cluster
オプションが false の場合にのみ有効です。それ以外の場合、このオプションの値は、クラスター展開のトポロジー ファイルで指定されたユーザー名に固定されます。
-i、--identity_file
- ターゲット マシンに接続するためのキー ファイルを指定します。
- データ型:
STRING
- このオプションは、
~/.ssh/id_rsa
(デフォルト値) が渡されるとデフォルトで有効になります。
注記:
このオプションは、
--cluster
オプションが false の場合にのみ有効です。それ以外の場合、このオプションの値は${TIUP_HOME}/storage/cluster/clusters/<cluster-name>/ssh/id_rsa
に固定されます。
-p、--パスワード
- ターゲットマシンに接続するときにパスワードを使用してログインします。
- クラスターに
--cluster
オプションが追加された場合、パスワードはクラスターの展開時にトポロジ ファイルで指定されたユーザーのパスワードになります。 - クラスターに
--cluster
オプションが追加されていない場合、パスワードは-u/--user
オプションで指定されたユーザーのパスワードになります。
- クラスターに
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
-h, --help
- 関連するコマンドのヘルプ情報を出力します。
- データ型:
BOOLEAN
- このオプションは、値
false
を指定するとデフォルトで無効になります。このオプションを有効にするには、このオプションをコマンドに追加し、値true
渡すか、値を渡しません。
出力
次のフィールドを含むテーブル:
Node
: ターゲットノードCheck
: チェック項目Result
: チェック結果 (Pass、Warn、または Fail)Message
: 結果の説明