CentOS 上 CPU 信息查看、升级与维护建议
一 基线采集与解读
- 建议以标准化方式采集并留存基线,便于后续对比与审计。常用命令与要点如下:
- 基础信息:
- 查看内核与架构:uname -r、uname -a、getconf LONG_BIT
- 发行版版本:cat /etc/redhat-release
- CPU 详细信息:cat /proc/cpuinfo
- 架构摘要:lscpu
- 关键字段解读(/proc/cpuinfo):
- processor:逻辑处理器编号
- physical id:物理 CPU 编号
- core id:核心编号
- cpu cores:每个物理 CPU 的核心数
- siblings:每个物理 CPU 的逻辑处理器数
- flags:特性标志(如 ht 表示超线程、vmx/svm 表示虚拟化)
- 快速统计示例(便于巡检脚本化):
- 逻辑 CPU 数:grep -c ^processor /proc/cpuinfo
- 物理 CPU 数:sort -u /proc/cpuinfo | grep ‘^physical id’ | wc -l
- 每物理 CPU 核心数:grep ‘cpu cores’ /proc/cpuinfo | head -1 | awk ‘{print $4}’
- 是否启用超线程:若 siblings > cpu cores 则开启
- 建议:将上述命令输出重定向到版本化目录(如 /opt/baseline/YYYYMMDD/),并定期对比变化。
二 升级与变更管理
- 内核与微码属于“变更”,务必先备份、再评估、后实施,并保留回退路径。
- 备份与评估:
- 备份关键数据与配置;检查当前系统与内核:cat /etc/redhat-release、uname -r
- 规划维护窗口与回退策略(多内核共存,保留旧内核以便回滚)
- 内核升级(ELRepo 示例,CentOS 7):
- 导入 GPG 并启用仓库:
- rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
- 查看与安装:
- yum --disablerepo=“*” --enablerepo=“elrepo-kernel” list available
- 安装主线或长期支持版:yum --enablerepo=elrepo-kernel install kernel-ml(或 kernel-lt)
- 微码更新(提升稳定性/安全修复,按厂商指导):
- 更新后重启,确认微码版本:grep microcode /proc/cpuinfo
- 启动与回退:
- 检查默认启动项:awk -F' ‘$1=="menuentry " {print $2}’ /boot/grub2/grub.cfg
- 设置默认内核(示例将索引为 0 的条目设为默认):grub2-set-default 0
- 生成配置:grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启后验证:uname -r
- 注意:跨小版本或主版本的系统升级(如 7→8)需使用升级工具与兼容性评估,步骤与内核升级不同,请单独规划。
三 运行期维护与性能一致性
- 保持内核与微码为最新稳定版,有助于修复 CPU 相关漏洞并提升微架构稳定性;变更后持续观察业务指标与日志。
- 变更后检查:
- 当前运行内核:uname -r
- 启动项顺序与默认内核:检查 /boot/grub2/grub.cfg 与 grub2-editenv list
- 系统日志:journalctl -k -b -1(查看上次启动的内核日志)
- 性能一致性(可选,按负载特性评估):
- CPU 调频策略:安装 cpupowerutils,在性能敏感场景将 scaling_governor 设为 performance
- 查看:cpupower -c all frequency-info
- 设置:cpupower -c all frequency-set -g performance
- 透明大页(THP):部分应用对 THP 敏感,建议先评估再决定是否关闭或设为 madvise
- 查看:cat /sys/kernel/mm/transparent_hugepage/enabled、cat /sys/kernel/mm/transparent_hugepage/defrag
- 建议:任何调优变更都先在测试环境验证,变更窗口内逐步推广,并保留回退方案。
四 自动化巡检与变更审计
- 巡检脚本要点(示例,保存为 /usr/local/bin/cpu_baseline.sh):
- 采集命令集合:
- uname -r、uname -a、getconf LONG_BIT
- cat /etc/redhat-release
- lscpu
- grep -c ^processor /proc/cpuinfo
- sort -u /proc/cpuinfo | grep ‘^physical id’ | wc -l
- grep ‘cpu cores’ /proc/cpuinfo | head -1 | awk ‘{print $4}’
- grep ‘siblings’ /proc/cpuinfo | head -1 | awk ‘{print $2}’
- grep -m1 ‘model name’ /proc/cpuinfo
- grep microcode /proc/cpuinfo
- 输出建议以 时间戳_主机名.txt/json 形式落盘,纳入版本化存储与 CMDB。
- 变更审计要点:
- 记录每次内核/微码变更前后的输出,对比关键字段(内核版本、微码版本、逻辑/物理 CPU、核心/线程数)
- 保留 grub 配置与默认启动项变更记录,确保可回退
- 对业务关键主机,建议建立“变更—验证—留痕”的闭环流程与告警阈值(如重启失败、CPU 频率异常掉到最低档等)。