重要
このページは英語版のページを機械翻訳しています。原文はこちらからご覧ください。

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

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

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

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

トポロジー情報

実例カウント物理マシン構成知財Configuration / コンフィグレーション
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のユーザーを自動的に作成します。ユーザーをカスタマイズすることも、ユーザーと制御マシンの一貫性を保つこともできます。
    • 展開ディレクトリを相対パスとして構成すると、クラスタはユーザーのホームディレクトリに展開されます。