ハイブリッド展開トポロジ
このドキュメントでは、TiKV と TiDB のハイブリッド展開のトポロジと主要なパラメータについて説明します。
ハイブリッド展開は通常、次のシナリオで使用されます。
デプロイメントマシンには、十分なメモリを備えた複数のCPUプロセッサが搭載されています。物理マシンリソースの利用率を向上させるため、TiDBとTiKVのCPUリソースはNUMAノードバインディングによって分離され、単一のマシンに複数のインスタンスをデプロイできます。PDとPrometheusは一緒にデプロイされますが、それぞれのデータディレクトリは別々のファイルシステムを使用する必要があります。
トポロジ情報
| 実例 | カウント | 物理マシン構成 | IP | コンフィグレーション |
|---|---|---|---|---|
| TiDB | 6 | 32 VCore 64GB | 10.0.1.1 10.0.1.2 10.0.1.3 | CPUコアをバインドするためにNUMAを構成する |
| PD | 3 | 16 VCore 32 GB | 10.0.1.4 10.0.1.5 10.0.1.6 | location_labelsパラメータを設定する |
| TiKV | 6 | 32 VCore 64GB | 10.0.1.7 10.0.1.8 10.0.1.9 | 2. グローバルパラメータ readpool storage設定しますraftstore3. インスタンス レベルのホストのラベルを構成します。 4. CPUコアをバインドするためのNUMAを構成する |
| モニタリングとGrafana | 1 | 4 VCore 8GB * 1 500GB (SSD) | 10.0.1.10 | デフォルト設定 |
注記:
インスタンスのIPアドレスは例としてのみ示されています。実際の導入では、IPアドレスを実際のIPアドレスに置き換えてください。
トポロジテンプレート
上記の TiDB クラスター トポロジ ファイルの構成項目の詳細については、 TiUPを使用して TiDB をデプロイするためのトポロジコンフィグレーションファイル参照してください。
主なパラメータ
このセクションでは、単一マシンに複数のインスタンスをデプロイする際の主要なパラメータについて説明します。これは主に、単一マシンにTiDBとTiKVの複数のインスタンスをデプロイするシナリオで使用されます。以下の計算方法に従って、結果を構成テンプレートに入力する必要があります。
TiKVの設定を最適化する
readpoolスレッドプールに自己適応するように設定します。3 パラメータreadpool.unified.max-thread-count設定することで、readpool.storageとreadpool.coprocessor統合スレッドプールを共有し、それぞれ自己適応スイッチを設定できます。readpool.storageとreadpool.coprocessor有効にする:readpool.storage.use-unified-pool: true readpool.coprocessor.use-unified-pool: true計算方法:
readpool.unified.max-thread-count = cores * 0.8 / the number of TiKV instances
storageCF(すべてのRocksDB列ファミリー)をメモリに適応させるように設定するには、
storage.block-cache.capacityパラメータを設定することで、CFがメモリ使用量を自動的に調整できるようになります。計算方法:
storage.block-cache.capacity = (MEM_TOTAL * 0.5 / the number of TiKV instances)
複数の TiKV インスタンスが同じ物理ディスクにデプロイされている場合は、TiKV 構成に
capacityパラメータを追加します。raftstore.capacity = disk total capacity / the number of TiKV instances
ラベルスケジュール設定
1台のマシンに複数のTiKVインスタンスがデプロイされているため、物理マシンがダウンすると、 Raftグループはデフォルトの3つのレプリカのうち2つを失い、クラスターが利用できなくなる可能性があります。この問題に対処するには、ラベルを使用してPDのスマートスケジューリングを有効にします。これにより、 Raftグループは同一マシン上の複数のTiKVインスタンスに2つ以上のレプリカを持つようになります。
TiKV構成
同じ物理マシンに対して同じホストレベルのラベル情報が構成されています。
config: server.labels: host: tikv1PD構成
PD がリージョンを識別してスケジュールできるようにするには、PD のラベル タイプを構成します。
pd: replication.location-labels: ["host"]
numa_nodeコアバインディングインスタンスパラメータモジュールで、対応するパラメータ
numa_nodeを設定し、CPUコアの数を追加します。NUMAを使用してコアをバインドする前に、numactlツールがインストールされていること、および物理マシンのCPU情報を確認してください。その後、パラメータを設定してください。
numa_nodeパラメータはnumactl --membind構成に対応します。
注記:
- 構成ファイル テンプレートを編集するときは、必要なパラメータ、IP、ポート、およびディレクトリを変更します。
- 各コンポーネントは、グローバルポートの
<deploy_dir>/<components_name>-<port>デフォルトでポートdeploy_dirとして使用します。例えば、TiDBがポート4001を指定した場合、そのポートdeploy_dirデフォルトで/tidb-deploy/tidb-4001なります。したがって、マルチインスタンスのシナリオでは、デフォルト以外のポートを指定する場合、ディレクトリを再度指定する必要はありません。- 設定ファイルに
tidbユーザーを手動で作成する必要はありません。TiUPTiUPコンポーネントは、ターゲットマシンにtidbユーザーを自動的に作成します。ユーザーをカスタマイズすることも、コントロールマシンと同じユーザーを維持することもできます。- デプロイメント ディレクトリを相対パスとして構成すると、クラスターはユーザーのホーム ディレクトリにデプロイされます。