ハイブリッド展開トポロジ

このドキュメントでは、TiKVとTiDBのハイブリッド展開のトポロジと主要なパラメータについて説明します。

ハイブリッド展開は通常、次のシナリオで使用されます。

デプロイメントマシンには、十分なメモリを備えた複数のCPUプロセッサがあります。物理マシンリソースの使用率を向上させるために、複数のインスタンスを1台のマシンにデプロイできます。つまり、TiDBとTiKVのCPUリソースはNUMAノードバインディングによって分離されます。 PDとPrometheusは一緒にデプロイされますが、それらのデータディレクトリは別々のファイルシステムを使用する必要があります。

トポロジー情報

実例カウント物理マシン構成IPConfiguration / コンフィグレーション
TiDB632 VCore 64GB10.0.1.1
10.0.1.2
10.0.1.3
CPUコアをバインドするようにNUMAを構成する
PD316 VCore 32 GB10.0.1.4
10.0.1.5
10.0.1.6
location_labelsつのパラメーターを構成します
TiKV632 VCore 64GB10.0.1.7
10.0.1.8
10.0.1.9
  • インスタンスレベルのポートとstatus_portを分離します。
    2.グローバルパラメータreadpool 、およびraftstoreを設定しstorage
    3.インスタンスレベルのホストのラベルを構成します。
    4.CPUコアをバインドするようにNUMAを構成します
  • モニタリングとGrafana14 VCore 8GB * 1 500GB(ssd)10.0.1.10デフォルト設定

    トポロジテンプレート

    上記のTiDBクラスタトポロジファイルの構成項目の詳細については、 TiUPを使用してTiDBを展開するためのトポロジConfiguration / コンフィグレーションファイルを参照してください。

    重要なパラメータ

    このセクションでは、単一のマシンに複数のインスタンスをデプロイする場合の主要なパラメーターを紹介します。これは主に、TiDBとTiKVの複数のインスタンスが単一のマシンにデプロイされるシナリオで使用されます。以下の計算方法に従って、結果を構成テンプレートに入力する必要があります。

    • TiKVの構成を最適化する

      • readpoolをスレッドプールに自己適応するように構成します。 readpool.unified.max-thread-countパラメータを設定することにより、 readpool.storagereadpool.coprocessorでユニファイドスレッドプールを共有し、それぞれ自己適応型スイッチを設定できます。

        • readpool.storagereadpool.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
      • ストレージCF(すべてのRocksDB列ファミリー)をメモリーに自己適応するように構成します。 storage.block-cache.capacityパラメータを設定することにより、CFにメモリ使用量のバランスを自動的にとらせることができます。

        • storage.block-cacheは、デフォルトでCFの自己適応を有効にします。変更する必要はありません。

          storage.block-cache.shared: true
        • 計算方法:

          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
    • ラベルスケジューリング構成

      TiKVの複数のインスタンスが単一のマシンにデプロイされているため、物理マシンがダウンすると、Raftグループはデフォルトの3つのレプリカのうち2つを失い、クラスタが使用できなくなる可能性があります。この問題に対処するには、ラベルを使用してPDのスマートスケジューリングを有効にします。これにより、Raftグループが同じマシン上の複数のTiKVインスタンスに3つ以上のレプリカを持つようになります。

      • TiKV構成

        同じホストレベルのラベル情報が同じ物理マシンに設定されています。

        config: server.labels: host: tikv1
      • PD構成

        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人のユーザーを手動で作成する必要はありません。 TiUPクラスタコンポーネントは、ターゲットマシン上にtidbのユーザーを自動的に作成します。ユーザーをカスタマイズすることも、ユーザーを制御マシンとの一貫性を保つこともできます。
    • 展開ディレクトリを相対パスとして構成すると、クラスタはユーザーのホームディレクトリに展開されます。

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