TiDB 展開に関するよくある質問
このドキュメントは、TiDB の展開に関連する FAQ をまとめたものです。
ソフトウェアおよびハードウェア要件
TiDB はどのオペレーティング システムをサポートしていますか?
TiDB がサポートするオペレーティング システムについては、 ソフトウェアおよびハードウェアの推奨事項を参照してください。
開発、テスト、または本番環境で TiDB クラスターに推奨されるハードウェア構成は何ですか?
TiDB は、Intel x86-64アーキテクチャの 64 ビット汎用ハードウェアサーバープラットフォーム、または ARMアーキテクチャのハードサーバープラットフォームにデプロイして実行できます。開発、テスト、および本番環境のサーバーハードウェア構成に関する要件と推奨事項については、 ソフトウェアおよびハードウェアの推奨事項 - サーバーの推奨事項を参照してください。
10 ギガビットの 2 枚のネットワーク カードの目的は何ですか?
PD は一意のタイムスタンプを配布する必要があるため、分散クラスターとして、特に PD の場合、TiDB は時間の要求が高くなります。 PD サーバーの時刻が一致していないと、PDサーバーの切り替え時に待ち時間が長くなります。 2 枚のネットワーク カードを結合することでデータ転送の安定性が保証され、10 ギガビットが転送速度を保証します。ギガビット ネットワーク カードはボトルネックになりやすいため、10 ギガビット ネットワーク カードを使用することを強くお勧めします。
SSD に RAID を使用しなければ実現可能ですか?
リソースが十分にある場合は、SSD に RAID 10 を使用することをお勧めします。リソースが不十分な場合は、SSD に RAID を使用しなくてもかまいません。
TiDB コンポーネントの推奨構成は何ですか?
- TiDB には、CPU とメモリに関する高い要件があります。 TiDB Binlogを有効にする必要がある場合は、サービス ボリュームの見積もりと GC 操作の所要時間に基づいて、ローカル ディスク領域を増やす必要があります。ただし、SSD ディスクは必須ではありません。
- PD はクラスター メタデータを格納し、頻繁な読み取りおよび書き込み要求を行います。高 I/O ディスクが必要です。パフォーマンスの低いディスクは、クラスター全体のパフォーマンスに影響します。 SSD ディスクの使用をお勧めします。さらに、リージョンの数が多いほど、CPU とメモリの要件が高くなります。
- TiKV には、CPU、メモリ、およびディスクに対する高い要件があります。 SSDを使用するために必要です。
詳細については、 ソフトウェアおよびハードウェアの推奨事項を参照してください。
インストールと展開
本番環境では、 TiUPを使用して TiDB クラスターをデプロイすることをお勧めします。 TiUPを使用して TiDBクラスタをデプロイを参照してください。
TiKV/PD の変更されたtoml
構成が有効にならないのはなぜですか?
toml
設定を有効にするには、TiKV/PD で--config
パラメータを設定する必要があります。デフォルトでは、TiKV/PD は構成を読み取りません。現在、この問題は Binary を使用してデプロイする場合にのみ発生します。 TiKV の場合は、構成を編集してサービスを再起動します。 PD の場合、設定ファイルは PD が初めて起動されたときにのみ読み込まれます。その後、pd-ctl を使用して設定を変更できます。詳細については、 PD Controlユーザー ガイドを参照してください。
TiDB 監視フレームワーク (Prometheus + Grafana) をスタンドアロン マシンまたは複数のマシンにデプロイする必要がありますか?推奨される CPU とメモリは?
監視マシンは、スタンドアロン展開を使用することをお勧めします。 16 GB 以上のメモリと 500 GB 以上のハードディスクを備えた 8 コア CPU を使用することをお勧めします。
モニターがすべてのメトリックを表示できないのはなぜですか?
モニターのマシン時刻とクラスター内時刻の時差を確認します。サイズが大きい場合は、時間を修正すると、モニターにすべてのメトリックが表示されます。
supervise/svc/svstat サービスの機能は何ですか?
- supervise: プロセスを管理するためのデーモン プロセス
- svc: サービスの開始と停止
- svstat: プロセスのステータスを確認する
inventory.ini 変数の説明
変数 | 説明 |
---|---|
cluster_name | クラスターの名前、調整可能 |
tidb_version | TiDB のバージョン |
deployment_method | デプロイの方法、デフォルトではバイナリ、オプションの Docker |
process_supervision | プロセスの監視方法、デフォルトで systemd、supervise オプション |
timezone | 管理対象ノードset_timezone Asia/Shanghai で使用 |
set_timezone | 管理対象ノードのタイムゾーンを編集します。デフォルトは True です。 False は閉じることを意味します |
enable_elk | 現在サポートされていません |
enable_firewalld | デフォルトで閉じられているファイアウォールを有効にする |
enable_ntpd | 管理対象ノードの NTP サービスを監視するには、デフォルトで True。閉じないでください |
machine_benchmark | 管理対象ノードのディスク IOPS を監視するには、デフォルトで True。閉じないでください |
set_hostname | IP に基づいて管理対象ノードのホスト名を編集するには、デフォルトで False |
enable_binlog | Pumpをデプロイしてbinlogを有効にするかどうか。デフォルトでは False で、Kafka クラスターに依存します。 zookeeper_addrs 変数を参照してください |
zookeeper_addrs | binlog Kafka クラスターの ZooKeeper アドレス |
enable_slow_query_log | TiDB のスロー クエリ ログを 1 つのファイル ({{ deploy_dir }}/log/tidb_slow_query.log) に記録します。デフォルトでは False で、TiDB ログに記録します |
deploy_without_tidb | Key-Value モードでは、PD、TiKV、および監視サービスのみを展開し、TiDB は展開しません。 inventory.ini のファイルで tidb_servers ホスト グループの IP を null に設定します。 |
低速クエリ ログを TiDB に個別に記録する方法は?遅いクエリ SQL ステートメントを見つける方法は?
TiDB のスロー クエリの定義は、TiDB 構成ファイルにあります。
slow-threshold: 300
パラメータは、スロー クエリのしきい値を設定するために使用されます (単位: ミリ秒)。スロー クエリが発生した場合、Grafana を使用してスロー クエリが発生した
tidb-server
インスタンスとスロー クエリの時点を特定し、該当するノードのログに記録された SQL ステートメント情報を見つけることができます。ログに加えて、
ADMIN SHOW SLOW
コマンドを使用してスロー クエリを表示することもできます。詳細については、ADMIN SHOW SLOW
コマンドを参照してください。
初めて TiDB クラスターをデプロイしたときに TiKV のlabel
構成されていなかった場合、 label
構成を追加する方法を教えてください。
TiDB label
の構成は、クラスター展開アーキテクチャに関連しています。これは、PD がグローバルな管理とスケジューリングを実行するための重要な基盤です。以前にクラスターを展開するときにlabel
構成しなかった場合は、PD 管理ツールpd-ctl
を使用して手動でlocation-labels
情報を追加することにより、展開構造を調整する必要があります 7 、たとえば、 config set location-labels "zone,rack,host"
(実用的なlabel
レベル名に基づいて構成する必要があります)。
pd-ctl
の使い方はPD Controlユーザー ガイドを参照。
ディスク テストのdd
コマンドがoflag=direct
オプションを使用するのはなぜですか?
ダイレクト モードは、書き込み要求を I/O コマンドにラップし、このコマンドをディスクに送信して、ファイル システム キャッシュをバイパスし、ディスクの実際の I/O 読み取り/書き込みパフォーマンスを直接テストします。
fio
コマンドを使用して TiKV インスタンスのディスク パフォーマンスをテストする方法を教えてください。
ランダム読み取りテスト:
./fio -ioengine=psync -bs=32k -fdatasync=1 -thread -rw=randread -size=10G -filename=fio_randread_test.txt -name='fio randread test' -iodepth=4 -runtime=60 -numjobs=4 -group_reporting --output-format=json --output=fio_randread_result.json順次書き込みとランダム読み取りの混合テスト:
./fio -ioengine=psync -bs=32k -fdatasync=1 -thread -rw=randrw -percentage_random=100,0 -size=10G -filename=fio_randread_write_test.txt -name='fio mixed randread and sequential write test' -iodepth=4 -runtime=60 -numjobs=4 -group_reporting --output-format=json --output=fio_randread_write_test.json
TiDB が現在サポートしているパブリック クラウド ベンダーは?
TiDB はGoogle GKE 、 AWS EKS 、およびアリババクラウド ACKでの展開をサポートしています。
さらに、TiDB は現在、JD Cloud と UCloud で利用できます。