在 Linux 里“cpuinfo 为空”通常有以下几种常见原因和对应位置,先分清你指的是哪一个:/proc/cpuinfo 为空、lscpu 无输出,还是某个工具读不到 CPU 信息。
/proc/cpuinfo 为空或不存在/proc/proc/cpuinfo检查:
ls -l /proc/cpuinfo
cat /proc/cpuinfo
如果是空文件或不存在,说明内核未提供该接口。
内核需开启:
CONFIG_PROC_FS=y
CONFIG_SMP=y(多核信息)
否则 /proc/cpuinfo 可能内容很少或为空。
可以尝试:
lscpu
nproc
lscpu 输出为空或不完整lscpu 依赖:
/proc/cpuinfo/sys/devices/system/cpu如果 /sys 没挂载:
mount | grep sysfs
修复:
mount -t sysfs sysfs /sys
很多容器:
lscpu 看起来“信息很少”例如:
cat /sys/fs/cgroup/cpu/cpu.cfs_quota_us
例如:
os.cpu_count() 返回 None常见原因:
CPUSET 限制cgroup 限制nproc 被限制检查:
nproc
getconf _NPROCESSORS_ONLN
cat /proc/cpuinfo
lscpu
nproc
ls /sys/devices/system/cpu
uname -a
如果你愿意,可以贴出:
uname -a 输出我可以更精确地判断是哪一种情况。