服务器很卡顿

📅 2026/7/24 4:48:21 👁️ 阅读次数 📝 编程学习
服务器很卡顿

问题描述:在连接服务器的时候很卡很卡,我的服务器性能也还行呀。就是不知道为什么。

查找问题:执行下面的命令,

echo "===== lscpu visible CPUs =====" lscpu | grep -E '^CPU\(s\)|On-line CPU' echo "===== current process available CPUs =====" nproc nproc --all grep Cpus_allowed_list /proc/$$/status taskset -pc $$ echo "===== cgroup CPU quota =====" cat /sys/fs/cgroup/cpu.max 2>/dev/null cat /sys/fs/cgroup/cpuset.cpus.effective 2>/dev/null echo "===== systemd limits =====" systemctl show user-$(id -u).slice \ -p CPUQuotaPerSecUSec \ -p AllowedCPUs 2>/dev/null

执行结果:

===== lscpu visible CPUs ===== CPU(s): 64 On-line CPU(s) list: 0-63 ===== current process available CPUs ===== 64 64 Cpus_allowed_list: 0-63 pid 1555921's current affinity list: 0-63 ===== cgroup CPU quota ===== 0-63 ===== systemd limits ===== CPUQuotaPerSecUSec=200ms AllowedCPUs=

其中

CPUQuotaPerSecUSec=200ms

它表示user-1009.slice每秒只获得约200 ms CPU 时间,也就是:

200 ms / 1000 ms = 20%

等效于整个用户账号最多只能使用约0.2 个 CPU 核,而不是 64 核。

解决问题

sudo systemctl set-property --runtime \ user-1009.slice CPUQuota=

然后就会看到

===== lscpu visible CPUs ===== CPU(s): 64 On-line CPU(s) list: 0-63 ===== current process available CPUs ===== 64 64 Cpus_allowed_list: 0-63 pid 1555749's current affinity list: 0-63 ===== cgroup CPU quota ===== 0-63 ===== systemd limits ===== CPUQuotaPerSecUSec=infinity AllowedCPUs=

看到

CPUQuotaPerSecUSec=infinity

这样就顺畅了。