- TiDBについて
- クイックスタート
- デプロイ
- 移行する
- 管理
- アップグレード
- 規模
- バックアップと復元
- BRツールを使用する(推奨)
- タイムゾーンの構成
- 毎日のチェックリスト
- TiFlashを管理する
- TiUPを使用してTiDBを管理する
- オンラインでConfiguration / コンフィグレーションを変更する
- オンラインの安全でない回復
- 監視と警告
- トラブルシューティング
- 性能チューニング
- システムチューニング
- ソフトウェアのチューニング
- Configuration / コンフィグレーション
- コプロセッサーキャッシュ
- SQLチューニング
- チュートリアル
- TiDBツール
- 概要
- ユースケース
- ダウンロード
- TiUP
- ドキュメントマップ
- 概要
- 用語と概念
- TiUPコンポーネントを管理する
- FAQ
- トラブルシューティングガイド
- コマンドリファレンス
- 概要
- TiUPコマンド
- TiUPクラスターコマンド
- 概要
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUPDMコマンド
- 概要
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDBクラスタートポロジリファレンス
- DMクラスタートポロジリファレンス
- ミラーリファレンスガイド
- TiUPコンポーネント
- TiDB Operator
- バックアップと復元(BR)
- TiDB Binlog
- TiDB Lightning
- TiDBデータ移行
- TiDBデータ移行について
- DMの概要
- 基本的な機能
- 高度な機能
- シャーディングされたテーブルからのデータのマージと移行
- GH-ost/PT-oscを使用するMySQLデータベースからの移行
- SQL式を使用してDMLをフィルタリングする
- DMアーキテクチャ
- ベンチマーク
- クイックスタート
- データ移行シナリオ
- デプロイ
- 管理
- ツール
- クラスターのアップグレード
- データソースを作成する
- データソースの管理
- データ移行タスクの管理
- シャーディングDDLロックを手動で処理する
- 移行するMySQLインスタンスを切り替えます
- 移行するテーブルのスキーマを管理する
- アラートを処理する
- デイリーチェック
- トラブルシューティング
- 性能チューニング
- 参照
- セキュリティ
- モニタリング指標
- アラートルール
- エラーコード
- FAQ
- 用語集
- 例
- リリースノート
- TiCDC
- Dumpling
- sync-diff-inspector
- TiSpark
- 参照
- クラスターアーキテクチャ
- 主要な監視指標
- セキュリティ
- 権限
- SQL
- SQL言語の構造と構文
- SQLステートメント
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
COMMIT
CHANGE DRAINER
CHANGE PUMP
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW ANALYZE STATUS
SHOW [BACKUPS|RESTORES]
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- データ型
- 関数と演算子
- クラスター化インデックス
- 制約
- 生成された列
- SQLモード
- テーブル属性
- トランザクション
- ガベージコレクション(GC)
- ビュー
- パーティショニング
- 一時テーブル
- 文字セットと照合
- SQLの配置ルール
- システムテーブル
mysql
- INFORMATION_SCHEMA
- 概要
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_RULES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- TiDBダッシュボード
- 概要
- 管理
- アクセス
- 概要ページ
- クラスター情報ページ
- Top SQL
- キービジュアライザーページ
- メトリクス関係グラフ
- SQLステートメント分析
- 遅いクエリページ
- クラスター診断
- 検索ログページ
- インスタンスプロファイリング
- セッションの管理とConfiguration / コンフィグレーション
- FAQ
- CLI
- コマンドラインフラグ
- Configuration / コンフィグレーションファイルのパラメーター
- システム変数
- ストレージエンジン
- テレメトリー
- エラーコード
- テーブルフィルター
- トポロジラベルによるレプリカのスケジュール
- よくある質問
- リリースノート
- すべてのリリース
- リリースタイムライン
- TiDBバージョニング
- v5.4
- v5.3
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
- 用語集
TiDB環境とシステムConfiguration / コンフィグレーションのチェック
このドキュメントでは、TiDBをデプロイする前の環境チェック操作について説明します。次の手順は優先順位順に並べられています。
TiKVをデプロイするターゲットマシンにオプションを使用してデータディスクext4ファイルシステムをマウントします
実稼働環境では、EXT4ファイルシステムのNVMeSSDを使用してTiKVデータを保存することをお勧めします。この構成はベストプラクティスであり、その信頼性、セキュリティ、および安定性は、多数のオンラインシナリオで証明されています。
root
ユーザーアカウントを使用してターゲットマシンにログインします。
データディスクをext4ファイルシステムにフォーマットし、ファイルシステムにnodelalloc
およびnoatime
マウントオプションを追加します。 nodelalloc
オプションを追加する必要があります。そうしないと、TiUPデプロイメントは事前チェックに合格できません。 noatime
オプションはオプションです。
ノート:
データディスクがext4にフォーマットされ、マウントオプションが追加されている場合は、
umount /dev/nvme0n1p1
コマンドを実行してアンインストールし、以下の5番目の手順に直接スキップして/etc/fstab
ファイルを編集し、ファイルシステムにオプションを再度追加できます。
例として/dev/nvme0n1
のデータディスクを取り上げます。
データディスクを表示します。
fdisk -l
Disk /dev/nvme0n1: 1000 GB
パーティションを作成します。
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
ノート:
lsblk
コマンドを使用して、パーティションのデバイス番号を表示します。NVMeディスクの場合、生成されるデバイス番号は通常nvme0n1p1
です。通常のディスク(たとえば、/dev/sdb
)の場合、生成されるデバイス番号は通常sdb1
です。データディスクをext4ファイルシステムにフォーマットします。
mkfs.ext4 /dev/nvme0n1p1
データディスクのパーティションUUIDを表示します。
この例では、nvme0n1p1のUUIDは
c51eb23b-195c-4061-92a9-3fad812cc12f
です。lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 237b634b-a565-477b-8371-6dff0c41f5ab /boot ├─sda2 swap f414c5c0-f823-4bb1-8fdf-e531173a72ed └─sda3 ext4 547909c1-398d-4696-94c6-03e43e317b60 / sr0 nvme0n1 └─nvme0n1p1 ext4 c51eb23b-195c-4061-92a9-3fad812cc12f
/etc/fstab
のファイルを編集し、nodelalloc
のマウントオプションを追加します。vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
データディスクをマウントします。
mkdir /data1 && \ mount -a
次のコマンドで確認してください。
mount -t ext4
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
ファイルシステムがext4であり、マウントオプションに
nodelalloc
が含まれている場合、ターゲットマシンにオプションを使用してデータディスクext4ファイルシステムを正常にマウントできています。
システムスワップを確認して無効にする
TiDBは、動作のために十分なメモリスペースを必要とします。メモリが不足している場合、スワップをバッファとして使用すると、パフォーマンスが低下する可能性があります。したがって、次のコマンドを実行して、システムスワップを永続的に無効にすることをお勧めします。
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p
ノート:
swapoff -a
を実行してからswapon -a
を実行すると、データをメモリにダンプしてスワップをクリーンアップすることにより、スワップを更新します。スワップピネスの変更を削除してswapoff -a
だけ実行すると、システムを再起動した後にスワップが再度有効になります。
sysctl -p
は、システムを再起動せずに構成を有効にすることです。
ターゲットマシンのファイアウォールサービスを確認して停止します
TiDBクラスターでは、読み取りおよび書き込み要求やデータハートビートなどの情報を確実に送信するために、ノード間のアクセスポートを開く必要があります。一般的なオンラインシナリオでは、データベースとアプリケーションサービス間、およびデータベースノード間のデータ相互作用はすべて安全なネットワーク内で行われます。したがって、特別なセキュリティ要件がない場合は、ターゲットマシンのファイアウォールを停止することをお勧めします。それ以外の場合は、 ポートの使用法を参照して、必要なポート情報をファイアウォールサービスの許可リストに追加します。
このセクションの残りの部分では、ターゲットマシンのファイアウォールサービスを停止する方法について説明します。
ファイアウォールの状態を確認してください。例として、CentOS Linuxリリース7.7.1908(コア)を取り上げます。
sudo firewall-cmd --state sudo systemctl status firewalld.service
ファイアウォールサービスを停止します。
sudo systemctl stop firewalld.service
ファイアウォールサービスの自動開始を無効にします。
sudo systemctl disable firewalld.service
ファイアウォールの状態を確認してください。
sudo systemctl status firewalld.service
NTPサービスを確認してインストールします
TiDBは、ACIDモデルのトランザクションの線形整合性を保証するために、ノード間のクロック同期を必要とする分散データベースシステムです。
現在、クロック同期の一般的な解決策は、ネットワークタイムプロトコル(NTP)サービスを使用することです。インターネットでpool.ntp.org
タイミングサービスを使用することも、オフライン環境で独自のNTPサービスを構築することもできます。
NTPサービスがインストールされているかどうか、およびNTPサーバーと正常に同期しているかどうかを確認するには、次の手順を実行します。
次のコマンドを実行します。
running
が返される場合は、NTPサービスが実行されています。sudo systemctl status ntpd.service
ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled) Active: active (running) since 一 2017-12-18 13:13:19 CST; 3s ago
Unit ntpd.service could not be found.
が返された場合は、次のコマンドを試して、システムがNTPとのクロック同期を実行するためにntpd
ではなくchronyd
を使用するように構成されているかどうかを確認します。sudo systemctl status chronyd.service
chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-04-05 09:55:29 EDT; 3 days ago
結果が
chronyd
もntpd
も構成されていないことを示している場合は、どちらもシステムにインストールされていないことを意味します。最初にchronyd
またはntpd
をインストールし、自動的に開始できることを確認する必要があります。デフォルトでは、ntpd
が使用されます。システムが
chronyd
を使用するように構成されている場合は、ステップ3に進みます。
ntpstat
コマンドを実行して、NTPサービスがNTPサーバーと同期しているかどうかを確認します。ノート:
Ubuntuシステムの場合、
ntpstat
パッケージをインストールする必要があります。ntpstat
synchronised to NTP server
(NTPサーバーとの同期)を返す場合、同期プロセスは正常です。synchronised to NTP server (85.199.214.101) at stratum 2 time correct to within 91 ms polling server every 1024 s
次の状況は、NTPサービスが正常に同期していないことを示しています。
unsynchronised
次の状況は、NTPサービスが正常に実行されていないことを示しています。
Unable to talk to NTP daemon. Is it running?
chronyc tracking
コマンドを実行して、ChronyサービスがNTPサーバーと同期するかどうかを確認します。ノート:
これは、NTPdの代わりにChronyを使用するシステムにのみ適用されます。
chronyc tracking
コマンドが
Leap status : Normal
を返す場合、同期プロセスは正常です。Reference ID : 5EC69F0A (ntp1.time.nl) Stratum : 2 Ref time (UTC) : Thu May 20 15:19:08 2021 System time : 0.000022151 seconds slow of NTP time Last offset : -0.000041040 seconds RMS offset : 0.000053422 seconds Frequency : 2.286 ppm slow Residual freq : -0.000 ppm Skew : 0.012 ppm Root delay : 0.012706812 seconds Root dispersion : 0.000430042 seconds Update interval : 1029.8 seconds Leap status : Normal
コマンドが次の結果を返す場合、同期でエラーが発生します。
Leap status : Not synchronised
コマンドが次の結果を返す場合、
chronyd
サービスは正常に実行されていません。506 Cannot talk to daemon
NTPサービスの同期をできるだけ早く開始するには、次のコマンドを実行します。 pool.ntp.org
をNTPサーバーに置き換えます。
sudo systemctl stop ntpd.service && \
sudo ntpdate pool.ntp.org && \
sudo systemctl start ntpd.service
CentOS 7システムにNTPサービスを手動でインストールするには、次のコマンドを実行します。
sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service
オペレーティングシステムの最適なパラメータを確認して構成します
実稼働環境のTiDBの場合、次の方法でオペレーティングシステム構成を最適化することをお勧めします。
- THP(Transparent Huge Pages)を無効にします。データベースのメモリアクセスパターンは、連続的ではなくまばらになる傾向があります。高レベルのメモリの断片化が深刻な場合、THPページが割り当てられるときに待ち時間が長くなります。
- ストレージメディアのI/Oスケジューラを
noop
に設定します。高速SSDストレージメディアの場合、カーネルのI/Oスケジューリング操作によってパフォーマンスが低下する可能性があります。スケジューラをnoop
に設定すると、カーネルが他の操作なしでI / O要求をハードウェアに直接送信するため、パフォーマンスが向上します。また、noopスケジューラの方が適しています。 - CPU周波数を制御するcpufrequモジュールの
performance
モードを選択します。 CPU周波数が動的調整なしでサポートされている最高の動作周波数に固定されている場合、パフォーマンスは最大になります。
次の手順を実行して、現在のオペレーティングシステムの構成を確認し、最適なパラメーターを構成します。
次のコマンドを実行して、THPが有効か無効かを確認します。
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
ノート:
[always] madvise never
が出力される場合、THPが有効になります。無効にする必要があります。次のコマンドを実行して、データディレクトリが配置されているディスクのI/Oスケジューラを確認します。 sdbディスクとsdcディスクの両方にデータディレクトリを作成するとします。
cat /sys/block/sd[bc]/queue/scheduler
noop [deadline] cfq noop [deadline] cfq
ノート:
noop [deadline] cfq
が出力された場合、ディスクのI/Oスケジューラはdeadline
モードになります。noop
に変更する必要があります。次のコマンドを実行して、ディスクの
ID_SERIAL
を確認します。udevadm info --name=/dev/sdb | grep ID_SERIAL
E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81 E: ID_SERIAL_SHORT=6d0946606d79f90025f3e09a0c1f9e81
ノート:
複数のディスクにデータディレクトリが割り当てられている場合は、上記のコマンドを数回実行して、各ディスクの
ID_SERIAL
を記録する必要があります。次のコマンドを実行して、cpufreqモジュールの電源ポリシーを確認します。
cpupower frequency-info --policy
analyzing CPU 0: current policy: frequency should be within 1.20 GHz and 3.10 GHz. The governor "powersave" may decide which speed to use within this range.
ノート:
The governor "powersave"
が出力された場合、cpufreqモジュールの電源ポリシーはpowersave
です。performance
に変更する必要があります。仮想マシンまたはクラウドホストを使用する場合、出力は通常Unable to determine current policy
であり、何も変更する必要はありません。オペレーティングシステムの最適なパラメータを構成します。
方法1:調整済みを使用する(推奨)
tuned-adm list
コマンドを実行して、現在のオペレーティングシステムの調整済みプロファイルを確認します。tuned-adm list
Available profiles: - balanced - General non-specialized tuned profile - desktop - Optimize for the desktop use-case - hpc-compute - Optimize for HPC compute workloads - latency-performance - Optimize for deterministic performance at the cost of increased power consumption - network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance - network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks - powersave - Optimize for low power consumption - throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads - virtual-guest - Optimize for running inside a virtual guest - virtual-host - Optimize for running KVM guests Current active profile: balanced
出力
Current active profile: balanced
は、現在のオペレーティングシステムの調整されたプロファイルがbalanced
であることを意味します。現在のプロファイルに基づいて、オペレーティングシステムの構成を最適化することをお勧めします。新しい調整済みプロファイルを作成します。
mkdir /etc/tuned/balanced-tidb-optimal/ vi /etc/tuned/balanced-tidb-optimal/tuned.conf
[main] include=balanced [cpu] governor=performance [vm] transparent_hugepages=never [disk] devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81) elevator=noop
出力
include=balanced
は、オペレーティングシステムの最適化構成を現在のbalanced
プロファイルに追加することを意味します。新しい調整済みプロファイルを適用します。
tuned-adm profile balanced-tidb-optimal
方法2:スクリプトを使用して構成します。すでに方法1を使用している場合は、この方法をスキップしてください。
grubby
コマンドを実行して、デフォルトのカーネルバージョンを確認します。ノート:
grubby
を実行する前に、最初にgrubby
のパッケージをインストールします。grubby --default-kernel
/boot/vmlinuz-3.10.0-957.el7.x86_64
grubby --update-kernel
を実行して、カーネル構成を変更します。grubby --args="transparent_hugepage=never" --update-kernel /boot/vmlinuz-3.10.0-957.el7.x86_64
ノート:
--update-kernel
の後に、実際のデフォルトのカーネルバージョンが続きます。grubby --info
を実行して、変更されたデフォルトのカーネル構成を確認します。grubby --info /boot/vmlinuz-3.10.0-957.el7.x86_64
ノート:
--info
の後に、実際のデフォルトのカーネルバージョンが続きます。index=0 kernel=/boot/vmlinuz-3.10.0-957.el7.x86_64 args="ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 transparent_hugepage=never" root=/dev/mapper/centos-root initrd=/boot/initramfs-3.10.0-957.el7.x86_64.img title=CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
現在のカーネル構成を変更して、THPをすぐに無効にします。
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
udevスクリプトでI/Oスケジューラを構成します。
vi /etc/udev/rules.d/60-tidb-schedulers.rules
ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_SERIAL}=="36d0946606d79f90025f3e09a0c1fc035", ATTR{queue/scheduler}="noop" ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_SERIAL}=="36d0946606d79f90025f3e09a0c1f9e81", ATTR{queue/scheduler}="noop"
udevスクリプトを適用します。
udevadm control --reload-rules udevadm trigger --type=devices --action=change
CPU電源ポリシーを構成するサービスを作成します。
cat >> /etc/systemd/system/cpupower.service << EOF [Unit] Description=CPU performance [Service] Type=oneshot ExecStart=/usr/bin/cpupower frequency-set --governor performance [Install] WantedBy=multi-user.target EOF
CPU電源ポリシー構成サービスを適用します。
systemctl daemon-reload systemctl enable cpupower.service systemctl start cpupower.service
次のコマンドを実行して、THPステータスを確認します。
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
次のコマンドを実行して、データディレクトリが配置されているディスクのI/Oスケジューラを確認します。
cat /sys/block/sd[bc]/queue/scheduler
[noop] deadline cfq [noop] deadline cfq
次のコマンドを実行して、cpufreqモジュールの電源ポリシーを確認します。
cpupower frequency-info --policy
analyzing CPU 0: current policy: frequency should be within 1.20 GHz and 3.10 GHz. The governor "performance" may decide which speed to use within this range.
次のコマンドを実行して、
sysctl
つのパラメーターを変更します。echo "fs.file-max = 1000000">> /etc/sysctl.conf echo "net.core.somaxconn = 32768">> /etc/sysctl.conf echo "net.ipv4.tcp_tw_recycle = 0">> /etc/sysctl.conf echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf echo "vm.overcommit_memory = 1">> /etc/sysctl.conf sysctl -p
次のコマンドを実行して、ユーザーの
limits.conf
ファイルを構成します。cat << EOF >>/etc/security/limits.conf tidb soft nofile 1000000 tidb hard nofile 1000000 tidb soft stack 32768 tidb hard stack 32768 EOF
パスワードなしでSSH相互信頼とsudoを手動で構成する
このセクションでは、パスワードなしでSSH相互信頼とsudoを手動で構成する方法について説明します。展開にはTiUPを使用することをお勧めします。これにより、SSH相互信頼が自動的に構成され、パスワードなしでログインできます。 TiUPを使用してTiDBクラスターをデプロイする場合は、このセクションを無視してください。
root
ユーザーアカウントを使用してそれぞれターゲットマシンにログインし、tidb
ユーザーを作成して、ログインパスワードを設定します。useradd tidb && \ passwd tidb
パスワードなしでsudoを設定するには、次のコマンドを実行し、ファイルの最後に
tidb ALL=(ALL) NOPASSWD: ALL
を追加します。visudo
tidb ALL=(ALL) NOPASSWD: ALL
tidb
人のユーザーを使用して制御マシンにログインし、次のコマンドを実行します。10.0.1.1
をターゲットマシンのIPに置き換え、プロンプトに従ってターゲットマシンのtidb
ユーザーパスワードを入力します。コマンドの実行後、SSH相互信頼はすでに作成されています。これは他のマシンにも当てはまります。新しく作成されたtidb
人のユーザーには、.ssh
ディレクトリがありません。このようなディレクトリを作成するには、RSAキーを生成するコマンドを実行します。制御マシンにTiDBコンポーネントを展開するには、制御マシンと制御マシン自体の相互信頼を構成します。ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1
tidb
ユーザーアカウントを使用してコントロールマシンにログインし、ssh
を使用してターゲットマシンのIPにログインします。パスワードを入力する必要がなく、正常にログインできる場合は、SSH相互信頼が正常に構成されています。ssh 10.0.1.1
[tidb@10.0.1.1 ~]$
tidb
ユーザーを使用してターゲットマシンにログインした後、次のコマンドを実行します。パスワードを入力する必要がなく、root
ユーザーに切り替えることができる場合は、tidb
ユーザーのパスワードなしのsudoが正常に構成されています。sudo -su root
[root@10.0.1.1 tidb]#
numactl
ツールをインストールします
このセクションでは、NUMAツールをインストールする方法について説明します。オンライン環境では、ハードウェア構成は通常必要以上に高いため、ハードウェアリソースをより適切に計画するために、TiDBまたはTiKVの複数のインスタンスを単一のマシンに展開できます。このようなシナリオでは、NUMAツールを使用して、パフォーマンスの低下を引き起こす可能性のあるCPUリソースの競合を防ぐことができます。
ノート:
- NUMAを使用したコアのバインドは、CPUリソースを分離する方法であり、高度に構成された物理マシンに複数のインスタンスをデプロイするのに適しています。
tiup cluster deploy
を使用して展開を完了した後、exec
コマンドを使用してクラスタレベルの管理操作を実行できます。
ターゲットノードにログインしてインストールします。例として、CentOS Linuxリリース7.7.1908(コア)を取り上げます。
sudo yum -y install numactl
tiup cluster
を使用してexec
コマンドを実行し、バッチでインストールします。tiup cluster exec --help
Run shell command on host in the tidb cluster Usage: cluster exec <cluster-name> [flags] Flags: --command string the command run on cluster host (default "ls") -h, --help help for exec --sudo use root permissions (default false)
sudo権限を使用して、
tidb-test
クラスタのすべてのターゲットマシンに対してインストールコマンドを実行するには、次のコマンドを実行します。tiup cluster exec tidb-test --sudo --command "yum -y install numactl"