展開に関するFAQ

このドキュメントは、TiDBの展開に関連するFAQをまとめたものです。

オペレーティングシステム要件

必要なオペレーティングシステムのバージョンは何ですか?

Linux OSバージョン
Red Hat Enterprise Linux7.3以降の7.xリリース
CentOS7.3以降の7.xリリース
Oracle Enterprise Linux7.3以降の7.xリリース
Amazon Linux2
Ubuntu LTS16.04以降

高性能のオープンソース分散NewSQLデータベースとして、TiDBはIntelアーキテクチャサーバーおよび主要な仮想化環境に展開でき、適切に実行されます。 TiDBは、主要なハードウェアネットワークとLinuxオペレーティングシステムのほとんどをサポートしています。詳細については、TiDBの導入について公式の展開要件を参照してください。

多くのTiDBテストがCentOS7.3で実行され、多くの展開のベストプラクティスがCentOS7.3に蓄積されています。したがって、TiDBをデプロイするときは、CentOS7.3+Linuxオペレーティングシステムを使用することをお勧めします。

サーバー要件

Intelx86-64アーキテクチャの64ビット汎用ハードウェアサーバープラットフォームにTiDBを展開して実行できます。開発、テスト、および実稼働環境のサーバーハードウェア構成に関する要件と推奨事項は次のとおりです。

開発およびテスト環境

成分CPUメモリーローカルストレージ通信網インスタンス番号(最小要件)
TiDB8コア+16 GB +SAS、200GB以上ギガビットネットワークカード1(PDと同じマシンにデプロイできます)
PD4コア+8GB以上SAS、200GB以上ギガビットネットワークカード1(TiDBと同じマシンにデプロイできます)
TiKV8コア+32 GB +SAS、200GB以上ギガビットネットワークカード3
TiFlash32コア+64 GB +SSD、200 GB +ギガビットネットワークカード1
TiCDC8コア+16 GB +SAS、200GB以上ギガビットネットワークカード1
サーバーの総数6

本番環境

成分CPUメモリーハードディスクの種類通信網インスタンス番号(最小要件)
TiDB16コア+48 GB +SAS10ギガビットネットワークカード(2枚推奨)2
PD8コア+16 GB +SSD10ギガビットネットワークカード(2枚推奨)3
TiKV16コア+64 GB +SSD10ギガビットネットワークカード(2枚推奨)3
TiFlash48コア+128 GB +1つ以上のSSD10ギガビットネットワークカード(2枚推奨)2
TiCDC16コア+64 GB +SSD10ギガビットネットワークカード(2枚推奨)2
モニター8コア+16 GB +SASギガビットネットワークカード1
サーバーの総数13

10ギガビットの2つのネットワークカードの目的は何ですか?

分散クラスタとして、PDは一意のタイムスタンプを配布する必要があるため、TiDBは、特にPDに対して時間に対する需要が高くなります。 PDサーバーの時間が一定していない場合、PDサーバーを切り替える際の待機時間が長くなります。 2枚のネットワークカードを結合することでデータ伝送の安定性が保証され、10ギガビットが伝送速度を保証します。ギガビットネットワークカードはボトルネックになりやすいため、10ギガビットネットワークカードを使用することを強くお勧めします。

SSDにRAIDを使用しない場合は可能ですか?

リソースが十分な場合は、SSDにRAID10を使用することをお勧めします。リソースが不十分な場合は、SSDにRAIDを使用しないことをお勧めします。

  • 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制御ユーザーガイドを参照してください。

監視マシンは、スタンドアロン展開を使用することをお勧めします。 16GB以上のメモリと500GB以上のハードディスクを備えた8コアCPUを使用することをお勧めします。

モニターがすべてのメトリックを表示できないのはなぜですか?

モニターのマシン時間とクラスタ内の時間の時間差を確認してください。大きい場合は、時間を修正すると、モニターにすべてのメトリックが表示されます。

supervise / svc / svstatサービスの機能は何ですか?

  • 監督:プロセスを管理するためのデーモンプロセス
  • svc:サービスを開始および停止します
  • svstat:プロセスステータスを確認します

Inventory.ini変数の説明

変数説明
cluster_nameクラスタの名前、調整可能
tidb_versionTiDBのバージョン
deployment_methodデプロイの方法、デフォルトではバイナリ、Dockerはオプション
process_supervisionプロセスの監視方法(デフォルトではsystemd)、オプションの監視
timezone管理対象ノードのタイムゾーン、調整可能、デフォルトではAsia/Shanghai変数でset_timezone
set_timezone管理対象ノードのタイムゾーンを編集します。デフォルトではTrueです。 Falseは閉じることを意味します
enable_elk現在サポートされていません
enable_firewalldファイアウォールを有効にするには、デフォルトで閉じています
enable_ntpd管理対象ノードのNTPサービスを監視します。デフォルトではTrueです。閉じないでください
machine_benchmark管理対象ノードのディスクIOPSを監視します。デフォルトではTrueです。閉じないでください
set_hostnameIPに基づいて管理対象ノードのホスト名を編集します。デフォルトではFalseです。
enable_binlogPumpをデプロイしてbinlogを有効にするかどうか(デフォルトではFalse、Kafkaクラスタに依存)。 zookeeper_addrs変数を参照してください
zookeeper_addrsbinlogKafkaクラスタのZooKeeperアドレス
enable_slow_query_logTiDBの低速クエリログを単一のファイルに記録するには:({{deploy_dir}} / log / tidb_slow_query.log)。デフォルトではFalseで、TiDBログに記録します
deploy_without_tidbKey-Valueモードでは、PD、TiKV、および監視サービスのみをデプロイし、TiDBはデプロイしません。 inventory.iniファイルでtidb_serversホストグループのIPをnullに設定します

遅いクエリログをTiDBに個別に記録するにはどうすればよいですか?遅いクエリのSQLステートメントを見つける方法は?

  1. TiDBの低速クエリ定義は、TiDB構成ファイルにあります。 slow-threshold: 300パラメーターは、低速クエリのしきい値(単位:ミリ秒)を構成するために使用されます。

  2. スロークエリが発生した場合は、Grafanaを使用して、スロークエリが存在するtidb-serverつのインスタンスとスロークエリの時点を特定し、対応するノードのログに記録されているSQLステートメント情報を見つけることができます。

  3. ログに加えて、 admin show slowコマンドを使用して低速クエリを表示することもできます。詳細については、 admin show slowコマンドを参照してください。

TiDBクラスタを初めてデプロイしたときにTiKVのlabelが構成されていなかった場合、 label構成を追加するにはどうすればよいですか?

TiDB labelの構成は、クラスタ展開アーキテクチャに関連しています。これは重要であり、PDがグローバルな管理とスケジューリングを実行するための基礎となります。以前にクラスタをデプロイするときにlabelを構成しなかった場合は、PD管理ツールpd-ctl (たとえば、 config set location-labels "zone,rack,host" )を使用してlocation-labelsの情報を手動で追加することにより、デプロイメント構造を調整する必要があります(実際のlabelレベル名に基づいて構成する必要があります)。

pd-ctlの使用法については、 PD制御ユーザーガイドを参照してください。

ディスクテストの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

このページは役に立ちましたか?