CentOS系统信息查询与监控全指南

在Linux系统运维工作中,准确获取硬件信息是故障排查和性能优化的基础。本文将以CentOS系统为例,系统梳理各类硬件信息的查询方法,并对比不同命令的输出特点,帮助读者建立完整的系统监控知识体系。

一、CPU信息深度解析

CPU作为系统核心组件,其型号、架构和位宽直接影响计算性能。通过/proc/cpuinfo文件可获取完整的CPU信息,该文件采用键值对格式存储数据,每行记录一个参数。

基础查询方法

  1. # 查询CPU型号(支持多核显示)
  2. grep "model name" /proc/cpuinfo | sort -u
  3. # 查询物理核心数(需排除超线程干扰)
  4. grep "physical id" /proc/cpuinfo | sort -u | wc -l
  5. # 查询逻辑核心数(包含超线程)
  6. grep -c "processor" /proc/cpuinfo

位宽检测技巧

  1. # 直接获取系统位宽(推荐)
  2. getconf LONG_BIT
  3. # 通过架构类型间接判断
  4. uname -m | grep -q "x86_64" && echo "64位系统" || echo "32位系统"

性能指标提取

  1. # 提取CPU主频(单位GHz)
  2. grep "MHz" /proc/cpuinfo | awk '{print $4/1000}' | sort -u
  3. # 检测超线程状态(需结合物理核心数)
  4. if [ $(grep -c "processor" /proc/cpuinfo) -gt $(grep -c "physical id" /proc/cpuinfo) ]; then
  5. echo "超线程已启用"
  6. fi

二、内存状态实时监控

内存管理是系统优化的重点领域,不同查询方式适用于不同场景:

总内存查询

  1. # 精确获取总内存(单位KB)
  2. grep MemTotal /proc/meminfo | awk '{print $2}'
  3. # 转换为GB单位(更友好)
  4. free -m | awk '/Mem/{printf "%.2fGB\n", $2/1024}'

内存使用分析

  1. # 实时监控内存变化(每2秒刷新)
  2. watch -n 2 "free -h | grep -A 1 Mem"
  3. # 计算内存使用率(排除缓存)
  4. free | awk '/Mem/{printf "使用率: %.2f%%\n", ($3-$7)/$2*100}'

缓存机制解析

  1. # 查看缓存/缓冲区占用
  2. free | awk '/Mem/{print "缓存占用:", $6/1024"GB"}'
  3. # 手动清理缓存(谨慎操作)
  4. sync; echo 3 > /proc/sys/vm/drop_caches

三、存储系统全面诊断

磁盘管理涉及容量监控、分区识别和文件系统分析:

容量可视化查询

  1. # 人类可读格式显示(自动转换单位)
  2. df -h | grep -v "tmpfs"
  3. # 显示inode使用情况
  4. df -i | awk '/\/$/{print "inode使用率:", $5}'

分区表解析

  1. # 列出所有分区信息(需root权限)
  2. fdisk -l 2>/dev/null | grep -A 10 "Disk /dev/"
  3. # 识别LVM逻辑卷
  4. lsblk | grep -v "^NAME" | awk '{print $1, $4, $6, $7}'

目录空间分析

  1. # 递归统计目录大小(排除子目录)
  2. du -sh /var/log/* | sort -h
  3. # 查找大文件(超过100MB)
  4. find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

四、系统版本与内核管理

版本信息对安全补丁和兼容性检查至关重要:

发行版识别

  1. # 主流方法(兼容CentOS/RHEL)
  2. cat /etc/redhat-release 2>/dev/null || cat /etc/os-release
  3. # 提取版本号(用于脚本判断)
  4. . /etc/os-release && echo $VERSION_ID

内核参数分析

  1. # 完整内核信息
  2. uname -a | awk '{print "内核版本:", $3, "主机名:", $2}'
  3. # 动态修改内核参数
  4. sysctl -w vm.swappiness=10 # 调整交换分区使用倾向

五、时间同步与NTP服务

时间准确性影响日志分析和集群协调:

基础时间操作

  1. # 显示当前时间(含时区)
  2. date "+%Y-%m-%d %H:%M:%S %Z"
  3. # 手动同步时间(需安装ntpdate)
  4. ntpdate pool.ntp.org 2>/dev/null && hwclock --systohc

NTP服务配置

  1. # 启动chronyd服务(推荐替代ntpd)
  2. systemctl enable --now chronyd
  3. # 验证时间同步状态
  4. chronyc tracking | grep "Last offset"

六、软件包管理对比

不同工具的查询结果差异解析:

RPM与YUM对比

  1. # RPM查询(基于本地数据库)
  2. rpm -qa | wc -l
  3. # YUM查询(包含仓库信息)
  4. yum list installed | wc -l
  5. # 差异原因分析
  6. # 1. YUM包含依赖包
  7. # 2. 本地数据库可能未更新
  8. # 3. 第三方仓库软件差异

安装日志分析

  1. # 查看系统安装日志(需root权限)
  2. if [ -f /root/install.log ]; then
  3. grep "Installing" /root/install.log | awk '{print $2}' | sort -u
  4. else
  5. echo "安装日志不存在,可能为最小化安装"
  6. fi

七、高级监控技巧

实时监控脚本示例

  1. #!/bin/bash
  2. # 系统资源监控脚本
  3. while true; do
  4. clear
  5. echo "===== 系统监控 ====="
  6. echo "CPU使用率: $(top -bn1 | grep "Cpu(s)" | awk '{print $2+$4"%"}')"
  7. echo "内存使用: $(free -m | awk '/Mem/{printf "%.1f/%.1fGB", $3/1024, $2/1024}')"
  8. echo "磁盘使用: $(df -h / | awk '/\//{print $5}')"
  9. sleep 5
  10. done

监控工具推荐

  1. htop:增强版top命令,支持颜色高亮和鼠标操作
  2. glances:跨平台监控工具,提供Web界面
  3. nmon:综合性能监控工具,支持数据导出

通过系统掌握这些查询命令,运维人员可以快速定位硬件瓶颈、验证系统配置,并为性能优化提供数据支撑。建议结合监控告警系统建立自动化巡检机制,实现问题的主动发现和快速响应。