From b72aa486c8ee023e342b47888da21524f5fc332d Mon Sep 17 00:00:00 2001 From: doc-claw-bot Date: Tue, 23 Jun 2026 08:31:18 +0000 Subject: [PATCH 1/4] docs: clarify no-sudo limits behavior --- tiup/tiup-cluster-no-sudo-mode.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tiup/tiup-cluster-no-sudo-mode.md b/tiup/tiup-cluster-no-sudo-mode.md index 7379b03a4c40..979e96b86181 100644 --- a/tiup/tiup-cluster-no-sudo-mode.md +++ b/tiup/tiup-cluster-no-sudo-mode.md @@ -40,6 +40,8 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 EOF ``` + 由于 no-sudo 模式下的 TiDB 服务由每个用户自己的 `systemd` 实例(`user@.service`)管理,`/etc/security/limits.conf` 中的限制会在 `user@.service` 启动时生效。如果你是在 `user@.service` 已经启动之后才修改 `/etc/security/limits.conf`,请先重启 `user@.service` 或重启目标机器,再部署或重启 TiDB 服务。否则,新 limits 可能不会对 TiDB 服务生效。 + 2. 在每台部署目标机器上,为 `tidb` 用户启动 `systemd user` 模式。该步骤是必须的,请勿跳过。 1. 使用 `tidb` 用户设置 `XDG_RUNTIME_DIR` 环境变量。 @@ -51,11 +53,13 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 source ~/.bashrc.d/systemd ``` - 2. 使用 `root` 用户启动 user service。 + 2. 使用 `root` 用户启动 user service。如果你在更新 `/etc/security/limits.conf` 时 `user@${uid}.service` 已经在运行,请执行 `systemctl restart user@${uid}.service` 以让新的限制生效。 ```shell $ uid=$(id -u tidb) # Get the ID of the tidb user $ systemctl start user@${uid}.service + # If user@${uid}.service is already running after you update /etc/security/limits.conf, run: + $ systemctl restart user@${uid}.service $ systemctl status user@${uid}.service user@1000.service - User Manager for UID 1000 Loaded: loaded (/usr/lib/systemd/system/user@.service; static; vendor preset> From b7971eebfb5f8339fad7346b1ef6e44ed6dfcad1 Mon Sep 17 00:00:00 2001 From: doc-claw-bot Date: Tue, 23 Jun 2026 08:47:41 +0000 Subject: [PATCH 2/4] docs: clarify no-sudo limit verification --- tiup/tiup-cluster-no-sudo-mode.md | 38 +++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/tiup/tiup-cluster-no-sudo-mode.md b/tiup/tiup-cluster-no-sudo-mode.md index 979e96b86181..3497318f100f 100644 --- a/tiup/tiup-cluster-no-sudo-mode.md +++ b/tiup/tiup-cluster-no-sudo-mode.md @@ -40,7 +40,7 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 EOF ``` - 由于 no-sudo 模式下的 TiDB 服务由每个用户自己的 `systemd` 实例(`user@.service`)管理,`/etc/security/limits.conf` 中的限制会在 `user@.service` 启动时生效。如果你是在 `user@.service` 已经启动之后才修改 `/etc/security/limits.conf`,请先重启 `user@.service` 或重启目标机器,再部署或重启 TiDB 服务。否则,新 limits 可能不会对 TiDB 服务生效。 + 在 no-sudo 模式下,TiDB 服务由每个用户自己的 `systemd` 实例(`user@.service`)管理。`/etc/security/limits.conf` 中的配置可能会在 `user@.service` 启动时通过 PAM 应用,但实际生效的文件描述符上限仍取决于该用户 `systemd` 实例本身获得的资源限制。因此,在某些系统上,即使已经配置 `/etc/security/limits.conf`,`user@.service` 的 `Max open files` 仍可能小于 TiDB 所需值。 2. 在每台部署目标机器上,为 `tidb` 用户启动 `systemd user` 模式。该步骤是必须的,请勿跳过。 @@ -53,13 +53,11 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 source ~/.bashrc.d/systemd ``` - 2. 使用 `root` 用户启动 user service。如果你在更新 `/etc/security/limits.conf` 时 `user@${uid}.service` 已经在运行,请执行 `systemctl restart user@${uid}.service` 以让新的限制生效。 + 2. 使用 `root` 用户启动 user service。 ```shell $ uid=$(id -u tidb) # Get the ID of the tidb user $ systemctl start user@${uid}.service - # If user@${uid}.service is already running after you update /etc/security/limits.conf, run: - $ systemctl restart user@${uid}.service $ systemctl status user@${uid}.service user@1000.service - User Manager for UID 1000 Loaded: loaded (/usr/lib/systemd/system/user@.service; static; vendor preset> @@ -78,7 +76,37 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 └─3358 /usr/bin/pulseaudio --daemonize=no --log-target=journal ``` - 3. 执行 `systemctl --user`。如果没有报错,说明 `systemd user` 模式已正常启动。 + 如果你是在 `user@${uid}.service` 已经运行之后才更新 `/etc/security/limits.conf`,请在部署或重启 TiDB 服务前重启 `user@${uid}.service`,使用户 `systemd` 实例重新加载更新后的资源限制。重启 `user@${uid}.service` 会停止该用户管理的所有 user services;如果集群已经运行,请先正常停止集群,或在维护窗口内执行该操作。 + + ```shell + $ uid=$(id -u tidb) # Get the ID of the tidb user + $ systemctl restart user@${uid}.service + ``` + + 3. 检查运行中的 `user@${uid}.service` 实际生效的 `Max open files` 值。 + + ```shell + $ uid=$(id -u tidb) + $ pid=$(systemctl show "user@${uid}.service" --property MainPID --value) + $ grep "Max open files" "/proc/${pid}/limits" + ``` + + 如果检查结果中的 `Max open files` 仍小于 TiDB 所需值,请为 `user@${uid}.service` 配置 system-level drop-in,然后重启该服务并再次检查实际值。 + + 4. 使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 + + ```shell + $ uid=$(id -u tidb) + $ install -d -m 0755 "/etc/systemd/system/user@${uid}.service.d" + $ cat <<'EOF' > "/etc/systemd/system/user@${uid}.service.d/limit-nofile.conf" + [Service] + LimitNOFILE=1000000 + EOF + $ systemctl daemon-reload + $ systemctl restart user@${uid}.service + ``` + + 5. 执行 `systemctl --user`。如果没有报错,说明 `systemd user` 模式已正常启动。 3. 使用 `root` 用户执行以下命令,为 systemd 用户 `tidb` 启用驻留。 From 4401d499d2fc3e1b09d805f062043ca08946a8ef Mon Sep 17 00:00:00 2001 From: doc-claw-bot Date: Tue, 23 Jun 2026 08:53:47 +0000 Subject: [PATCH 3/4] docs: clarify no-sudo limit threshold --- tiup/tiup-cluster-no-sudo-mode.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tiup/tiup-cluster-no-sudo-mode.md b/tiup/tiup-cluster-no-sudo-mode.md index 3497318f100f..b90efdc8612d 100644 --- a/tiup/tiup-cluster-no-sudo-mode.md +++ b/tiup/tiup-cluster-no-sudo-mode.md @@ -76,7 +76,7 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 └─3358 /usr/bin/pulseaudio --daemonize=no --log-target=journal ``` - 如果你是在 `user@${uid}.service` 已经运行之后才更新 `/etc/security/limits.conf`,请在部署或重启 TiDB 服务前重启 `user@${uid}.service`,使用户 `systemd` 实例重新加载更新后的资源限制。重启 `user@${uid}.service` 会停止该用户管理的所有 user services;如果集群已经运行,请先正常停止集群,或在维护窗口内执行该操作。 + 如果你是在 `user@${uid}.service` 已经运行之后才更新 `/etc/security/limits.conf`,请在部署或重启 TiDB 服务前重启 `user@${uid}.service`,使用户 `systemd` 实例重新加载更新后的资源限制。重启 `user@${uid}.service` 会停止该用户管理的所有 systemd 用户服务;如果集群已经运行,请先正常停止集群,或在维护窗口内执行该操作。 ```shell $ uid=$(id -u tidb) # Get the ID of the tidb user @@ -91,9 +91,9 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 $ grep "Max open files" "/proc/${pid}/limits" ``` - 如果检查结果中的 `Max open files` 仍小于 TiDB 所需值,请为 `user@${uid}.service` 配置 system-level drop-in,然后重启该服务并再次检查实际值。 + 如果上一步输出中的 `Hard Limit` 小于 `1000000`,请继续执行下一步,使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 - 4. 使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 + 4. 如果上一步输出中的 `Hard Limit` 小于 `1000000`,使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 ```shell $ uid=$(id -u tidb) @@ -106,7 +106,9 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 $ systemctl restart user@${uid}.service ``` - 5. 执行 `systemctl --user`。如果没有报错,说明 `systemd user` 模式已正常启动。 + 配置并重启后,请重复第 3 步,确认 `Max open files` 的实际值已经符合要求。 + + 5. 使用 `tidb` 用户执行 `systemctl --user`。如果没有报错,说明 `tidb` 用户的 `systemd` 用户服务模式已正常启动。 3. 使用 `root` 用户执行以下命令,为 systemd 用户 `tidb` 启用驻留。 From cfad525605a5c071f17df807ad24ad70ed45b643 Mon Sep 17 00:00:00 2001 From: doc-claw-bot Date: Tue, 23 Jun 2026 09:00:35 +0000 Subject: [PATCH 4/4] docs: show limits header in no-sudo check --- tiup/tiup-cluster-no-sudo-mode.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tiup/tiup-cluster-no-sudo-mode.md b/tiup/tiup-cluster-no-sudo-mode.md index b90efdc8612d..e7f8473c17db 100644 --- a/tiup/tiup-cluster-no-sudo-mode.md +++ b/tiup/tiup-cluster-no-sudo-mode.md @@ -88,11 +88,9 @@ summary: 了解如何使用 TiUP no-sudo 模式部署运维 TiDB 线上集群。 ```shell $ uid=$(id -u tidb) $ pid=$(systemctl show "user@${uid}.service" --property MainPID --value) - $ grep "Max open files" "/proc/${pid}/limits" + $ grep -E '^(Limit|Max open files)' "/proc/${pid}/limits" ``` - 如果上一步输出中的 `Hard Limit` 小于 `1000000`,请继续执行下一步,使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 - 4. 如果上一步输出中的 `Hard Limit` 小于 `1000000`,使用 `root` 用户为 `user@${uid}.service` 配置 `LimitNOFILE`。 ```shell