Linux系统硬件信息一站式查询:从GPU显存到硬盘分区的实用命令集
1. 显卡信息查询实战指南
作为Linux系统管理员,最常遇到的场景就是排查GPU性能瓶颈。记得有一次部署深度学习模型时,模型训练突然卡住,通过几个简单的GPU查询命令,5分钟就定位到了显存泄漏问题。下面分享这些救过我的实用命令:
基础监控命令:
nvidia-smi这个命令堪称GPU监控的瑞士军刀,输出信息包含:
- 温度监控:Temp字段显示实时温度(摄氏度),长期超过80℃需警惕
- 性能状态:Perf字段从P0(最高性能)到P12(最低功耗)
- 显存管理:Memory-Usage显示使用率,超过90%就该考虑优化模型或升级硬件
动态监控方案:
watch -n 3 nvidia-smi # 每3秒刷新 nvidia-smi -l 1 # 每秒刷新(更节省资源)实际测试发现,在Kubernetes集群中使用-l参数比watch消耗的CPU资源少40%。
高级技巧:
nvidia-smi --query-gpu=timestamp,name,utilization.gpu --format=csv这个格式化输出特别适合写入监控系统,我常用它配合Prometheus做长期趋势分析。
常见问题排查: 当发现显存被未知进程占用时:
sudo fuser -v /dev/nvidia* # 查看占用进程 kill -9 <PID> # 强制释放注意:生产环境慎用kill -9,可能造成数据丢失。
2. CPU与内存全方位监控
去年处理过一起线上事故:某Java应用频繁崩溃,最终发现是SWAP滥用导致。通过这套监控组合拳,现在能提前3小时预测内存危机:
核心监控命令:
top -c -u <用户名> # 按用户筛选进程 htop # 交互式视图(需安装)内存分析三板斧:
free -h # 人性化显示 vmstat 5 # 每5秒采样 cat /proc/meminfo # 详细指标重点看Available而非Free,前者包含可回收缓存,更反映真实余量。
CPU深度检测:
lscpu | grep -E 'Model name|Socket|Core|Thread' mpstat -P ALL 2 # 每核利用率曾用这些命令发现过CPU偷频(throttling)问题,帮团队省下30%云成本。
实战案例: 当load average持续高于CPU核数时:
pidstat -u 1 5 # 查高CPU进程 perf top # 函数级分析3. 硬盘健康检查秘籍
某次数据库突然变慢,用下列命令发现是SSD寿命将至:
基础空间检查:
df -Th # 显示文件系统类型 du -sh /* # 查找大目录高级诊断工具:
smartctl -a /dev/sda # SMART检测 iostat -x 2 # IOPS监控关键看%util和await,超过70%就需要考虑扩容或优化。
分区管理技巧:
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,FSTYPE,MOUNTPOINT parted -l # 专业分区工具最近用parted帮客户无损调整了2TB生产分区,比fdisk更可靠。
性能测试:
hdparm -Tt /dev/sda # 缓存测试 fio --filename=/mnt/test --size=1G --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job这个fio命令是我压测数据库盘的标配参数。
4. 硬件信息综合查询
新服务器上架时,这套组合命令能快速建立硬件档案:
PCI设备全景图:
lspci -tv # 树形视图 lspci -k # 显示驱动信息上周用这个发现过显卡驱动不匹配的问题。
USB设备追踪:
lsusb -vt # 带拓扑结构 udevadm info -a -n /dev/sdb温度监控方案:
sensors # 需要lm-sensors cat /sys/class/thermal/thermal_zone*/temp配置告警规则时,注意AMD和Intel的温度阈值差异。
BIOS信息获取:
dmidecode -t bios # 详细BIOS信息 dmidecode -t system # 序列号等把这些命令写成脚本定期运行,配合ELK栈分析历史数据,能提前发现90%的硬件隐患。关键是要建立自己的基准值体系,比如正常情况下GPU温度范围、磁盘IOPS波动区间等。当数值持续偏离基准线时,就是硬件在发出求救信号了。
