tiup cluster check
正式な本番環境では、稼働前に一連のチェックを実施し、クラスターが最高のパフォーマンスを発揮していることを確認する必要があります。手動チェックの手順を簡素化するため、 TiUP クラスタは、指定されたクラスターのターゲットマシンのハードウェアおよびソフトウェア環境が正常に動作するための要件を満たしているかどうかを確認するためのcheckのコマンドを提供しています。
チェック項目一覧
オペレーティング システムのバージョン
デプロイされたマシンのオペレーティングシステムのディストリビューションとバージョンを確認してください。サポートされているバージョンのリストについては、 OSおよびプラットフォームの要件参照してください。
CPU EPOLLEX限定
対象マシンのCPUがEPOLLEXCLUSIVEをサポートしているかどうかを確認します。
ヌマクトル
ターゲットマシンにnumactlインストールされているかどうかを確認してください。ターゲットマシンに複数のコアが紐付けられている場合は、 numactlインストールする必要があります。
システム時間
対象マシンのシステム時刻が同期されているかどうかを確認します。対象マシンのシステム時刻と中央制御マシンのシステム時刻を比較し、偏差が一定の閾値(500ミリ秒)を超えた場合はエラーを報告します。
システムのタイムゾーン
対象マシンのシステムタイムゾーンが同期されているかどうかを確認します。これらのマシンのタイムゾーン設定を比較し、タイムゾーンが一致していない場合はエラーを報告します。
時刻同期サービス
ターゲットマシンで時刻同期サービスが設定されているかどうかを確認します。つまり、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を無効にすることをお勧めします。
THP が有効になっているかどうかを確認するには、次のコマンドを実行します。
cat /sys/kernel/mm/transparent_hugepage/enabled
neverに設定されていない場合はgrubby --update-kernel=ALL --args="transparent_hugepage=never"に変更できます。
実行中の設定を変更するには、再起動するか、 echo never > /sys/kernel/mm/transparent_hugepage/enabled実行します。
システム制限
/etc/security/limits.confファイル内の制限値を確認します。
<deploy-user> soft nofile 1000000
<deploy-user> hard nofile 1000000
<deploy-user> soft stack 10240
<deploy-user>は TiDB クラスターを展開して実行するユーザーであり、最後の列はシステムに必要な最小値です。
SELinux
SELinuxを無効にするか、permissiveモードに設定する必要があります。現在のステータスを確認するには、 ゲットエンフォース(8)ユーティリティを使用してください。
SELinuxが無効になっていない場合は、 /etc/selinux/configファイルを開き、 SELINUX=で始まる行をSELINUX=disabledに変更します。この変更を行った後、システムを再起動する必要があります。7またはenforcing permissive disabledへの変更は、再起動しないと有効になりません。
一部のシステム(Ubuntuなど)では、 /etc/selinux/configファイルが存在せず、getenforceユーティリティがインストールされていない場合があります。その場合は、この手順をスキップしてください。
ファイアウォール
FirewallD サービスが有効になっているかどうかを確認してください。FirewallD サービスを無効にするか、TiDB クラスター内の各サービスに権限ルールを追加することをお勧めします。
irqバランス
irqbalanceサービスが有効になっているかどうかを確認してください。irqbalanceサービスを有効にすることをお勧めします。
ディスクマウントオプション
ext4パーティションのマウントオプションを確認してください。マウントオプションにnodelallocオプションとnoatimeオプションが含まれていることを確認してください。
ポートの使用
トポロジで定義されているポート (自動補完のデフォルト ポートを含む) が、ターゲット マシン上のプロセスによってすでに使用されているかどうかを確認します。
注記:
ポート使用状況チェックは、クラスターがまだ起動していないことを前提としています。クラスターが既にデプロイされ起動されている場合、ポートは使用中であるはずなので、クラスターのポート使用状況チェックは失敗します。
CPUコア数
対象マシンのCPU情報を確認してください。本番のクラスタでは、CPU論理コアの数が16以上であることが推奨されます。
注記:
CPUコア数はデフォルトではチェックされません。チェックを有効にするには、コマンドに
-enable-cpuオプションを追加する必要があります。
メモリサイズ
対象マシンのメモリサイズを確認してください。本番のクラスターでは、合計メモリ容量が32GB以上であることが推奨されます。
注記:
メモリサイズはデフォルトではチェックされません。チェックを有効にするには、コマンドに
-enable-memオプションを追加する必要があります。
Fioディスクパフォーマンステスト
フレキシブル I/O テスター (fio) を使用して、次の 3 つのテスト項目を含む、 data_dirが配置されているディスクのパフォーマンスをテストします。
- 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, --role
- チェックするロールを指定します。このオプションの値は、ノードロールのコンマ区切りのリストです。ノードのロールは、
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: チェック結果(合格、警告、不合格)Message: 結果の説明