1. Linux系统硬件信息查看全攻略
作为一名Linux系统管理员,掌握系统硬件资源监控是基本功。今天我将分享一套完整的Linux硬件信息查看方案,包含CPU、内存、磁盘等核心组件的监控命令和实战解读技巧。
2. CPU信息深度解析
2.1 lscpu命令详解
lscpu是查看CPU架构信息的首选命令。执行后会显示处理器型号、核心数、线程数等关键信息:
bash复制[root@server ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
Stepping: 9
CPU MHz: 2808.004
BogoMIPS: 5616.00
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-3
关键参数解读:
CPU(s):逻辑CPU总数(核心数×线程数)Thread(s) per core:每个物理核心的线程数(超线程技术)Model name:CPU具体型号和主频Cache:各级缓存大小,对性能调优很重要
提示:在采购服务器时,应特别关注
CPU(s)和Model name字段,确保CPU性能满足业务需求。
2.2 /proc/cpuinfo文件解析
除了lscpu,还可以直接查看/proc/cpuinfo文件:
bash复制cat /proc/cpuinfo
这个文件会列出每个逻辑CPU的详细信息,适合需要精确控制CPU绑定的场景(如高性能计算)。每颗逻辑CPU的信息以processor编号开头。
3. 内存监控实战指南
3.1 free命令参数详解
free -h是最常用的内存查看命令,-h参数表示以人类可读格式显示(自动转换GB/MB):
bash复制[root@server ~]# free -h
total used free shared buff/cache available
Mem: 7.7G 1.2G 5.8G 16M 728M 6.2G
Swap: 2.0G 0B 2.0G
各列含义:
total:物理内存总量used:已使用内存(包含buff/cache)free:完全未使用的内存buff/cache:被缓冲和缓存占用的内存(这部分内存可被快速回收)available:实际可用内存(估算值)
注意:Linux会尽可能利用空闲内存做磁盘缓存,所以看到
free很少不必惊慌,重点看available值。
3.2 内存泄漏排查技巧
当发现内存持续增长时,可以:
- 使用
free -h -s 5每5秒刷新显示 - 配合
top或htop查看具体进程内存占用 - 使用
smem -tk查看更详细的内存分布
常见内存问题:
- 缓存未释放:可通过
echo 3 > /proc/sys/vm/drop_caches手动释放 - 内存泄漏:需要定位具体进程并重启服务
4. 磁盘空间管理大全
4.1 df命令高级用法
df -h显示磁盘空间使用情况:
bash复制[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 50G 12G 36G 25% /
tmpfs 783M 0 783M 0% /run/user/0
关键参数:
tmpfs开头的文件系统是内存虚拟磁盘(速度极快但断电丢失)Use%超过80%时需要及时清理- 添加
-T参数可显示文件系统类型:df -hT
4.2 磁盘空间深度分析
当发现磁盘空间不足时,推荐使用以下组合命令:
- 查看大目录:
du -h --max-depth=1 / | sort -h - 查找大文件:
find / -type f -size +100M -exec ls -lh {} \; - 检查日志文件:
ls -lh /var/log/
重要技巧:使用
ncdu工具可以交互式分析磁盘使用情况,比du更直观高效。
5. 系统综合监控神器top
5.1 top界面全解析
top命令提供系统实时状态监控,输出分为上下两部分:
code复制top - 11:33:33 up 5 min, 1 user, load average: 0.01, 0.07, 0.05
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995684 total, 732352 free, 155648 used, 107684 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 710932 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 125304 3836 2568 S 0.0 0.4 0:01.67 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
5.1.1 系统概览区
load average:1/5/15分钟平均负载(理想值≤CPU核心数)%Cpu(s):us用户空间占用,sy内核占用,id空闲率KiB Mem:物理内存使用情况KiB Swap:交换空间使用情况
5.1.2 进程列表区
%CPU:CPU占用百分比(所有核心总和,可能超过100%)%MEM:物理内存占用百分比S:进程状态(R=运行,S=睡眠,Z=僵尸)
5.2 top实用技巧
-
快捷键操作:
M:按内存占用排序P:按CPU占用排序1:展开多核CPU显示z:切换彩色显示W:保存当前配置
-
高级用法:
top -b -n 1 > top.log:将top信息导出到文件top -p 1234:只监控指定PID的进程top -u mysql:只监控指定用户的进程
-
替代方案:
htop:交互性更好的top替代品(需额外安装)glances:更全面的监控工具
6. 硬件信息扩展工具
6.1 dmidecode查看硬件详情
dmidecode可以获取详细的硬件信息(需要root权限):
bash复制dmidecode -t system # 查看系统信息
dmidecode -t memory # 查看内存条详情
dmidecode -t processor # 查看CPU详情
这个命令会输出包括制造商、序列号在内的详细信息,特别适合服务器硬件盘点。
6.2 lshw综合硬件报告
lshw可以生成完整的硬件配置报告:
bash复制lshw -short # 简洁版
lshw -html > hardware.html # 生成HTML报告
6.3 专用硬件检测工具
- 网卡:
ethtool eth0 - 磁盘:
smartctl -a /dev/sda - PCI设备:
lspci -vv - USB设备:
lsusb -v
7. 监控数据可视化方案
7.1 使用sar收集历史数据
sar是sysstat工具包的一部分,可以收集系统性能历史数据:
bash复制sar -u 1 3 # 每1秒采样CPU,共3次
sar -r # 内存使用历史
sar -d # 磁盘I/O历史
建议配置/etc/default/sysstat启用历史数据收集。
7.2 Prometheus+Grafana监控方案
对于生产环境,推荐部署专业的监控系统:
- Prometheus采集指标
- node_exporter收集主机数据
- Grafana展示仪表盘
这种方案可以提供:
- 历史趋势图
- 自定义告警
- 多主机统一监控
8. 性能调优实战经验
8.1 CPU优化要点
- 负载均衡:使用
taskset绑定进程到特定CPU核心 - 中断优化:检查
/proc/interrupts,使用irqbalance - 频率调节:
cpufreq-set调整CPU频率策略
8.2 内存优化策略
- 调整swappiness:
vm.swappiness=10(减少swap使用) - 透明大页:根据负载测试决定是否启用
- 内存分配:
vm.overcommit_memory策略选择
8.3 磁盘I/O优化
- 调度器选择:
deadline或noop适用于SSD - 文件系统:XFS通常比ext4性能更好
- 挂载参数:
noatime,nodiratime减少元数据写入
9. 常见问题排查手册
9.1 性能问题速查表
| 症状 | 可能原因 | 检查命令 |
|---|---|---|
| 系统卡顿 | CPU过载 | top看load和%id |
| 程序响应慢 | 内存不足 | free -h看available |
| 磁盘IO高 | 大量写入 | iotop或sar -d |
| 网络延迟 | 带宽打满 | nload或sar -n DEV |
9.2 僵尸进程处理
僵尸进程通常由父进程未正确处理子进程退出引起。处理方法:
- 找到僵尸进程PID:
top中状态为Z的进程 - 找到父进程:
ps -ef | grep [父进程ID] - 优雅重启父进程:
kill -HUP [父进程ID]
警告:避免直接
kill -9父进程,这可能导致更多僵尸进程。
9.3 磁盘空间紧急释放
当/分区满时,可以快速清理:
- 日志文件:
journalctl --vacuum-size=100M - 缓存文件:
rm -rf /var/cache/yum/* - 临时文件:
rm -rf /tmp/*
长期解决方案是合理规划分区,将日志等频繁写入的目录单独挂载。
掌握这些Linux硬件监控命令和技巧,你就能像专业运维工程师一样高效管理系统资源。记住,好的系统管理员不是等报警出来才处理,而是通过日常监控提前发现问题。建议将关键命令加入日常检查清单,定期查看系统健康状态。