查看 Linux 系统配置是运维和开发人员最基础也最关键的能力。核心结论是:无需安装额外软件,Linux 自带的命令行工具组合即可完成对 CPU、内存、磁盘、网络、操作系统的全面体检,掌握这些命令能让你在 5 分钟内精准定位系统瓶颈。 下面从硬件资源、系统信息、性能监控三个维度分层展开,并提供真实场景的解决方案。
操作系统与内核信息
了解系统版本和内核是排查兼容性问题的第一步。优先使用 uname -a 和 cat /etc/os-release,前者输出内核版本、主机名、硬件架构,后者展示发行版名称和版本号,对于 CentOS/RHEL 系,cat /etc/redhat-release 更直观;Debian/Ubuntu 系可用 lsb_release -a(需安装 lsb-release 包)。
经验案例: 酷番云某客户反馈自建应用在云服务器上出现段错误,排查时发现本地编译环境是 Ubuntu 22.04,而生产环境是 CentOS 7.9,glibc 版本差异导致二进制不兼容,建议在部署前统一镜像版本,生产环境尽量使用与编译环境一致的操作系统,并定期执行 yum update 或 apt update && apt upgrade 获取安全补丁。
CPU 配置与负载
查看 CPU 物理核心数、逻辑线程数、型号和频率,常用命令:
lscpu一站式显示架构、核心数、线程数、CPU 频率、缓存大小。cat /proc/cpuinfo原始数据,grep "model name" /proc/cpuinfo | sort -u可提取型号。top或htop动态查看 CPU 使用率、负载均值、各进程占用。
判断系统是否过载,核心指标是平均负载(load average)。uptime 输出的三个数值分别代表 1、5、15 分钟平均负载,若长期高于逻辑核心数,说明存在 CPU 饱和风险。
经验案例: 酷番云监控告警显示一台 4 核云主机 load average 持续 8.0,但

top 中 CPU 空闲率却很高,进一步查看发现大量进程处于 D 状态(不可中断睡眠),根因是磁盘 I/O 瓶颈,而非 CPU 问题,因此必须结合 vmstat 的 wa 列和 iostat 的 %util 综合判断,不能单看负载数值,解决方案是升级云盘类型为 SSD 或优化数据库查询逻辑。
内存与交换分区
内存配置检查包括物理内存总量、可用量、缓存和交换分区使用情况。
free -h以人类可读方式显示 Mem 和 Swap 的 total、used、free、available。重点关注 available 列,它才是真正可用的内存,因为 Linux 会主动使用空闲内存做缓存。cat /proc/meminfo更详细的原始数据,包括 Buffers、Cached、SwapTotal 等。smem(需安装) 可更准确统计进程实际内存占用。
当 Swap 使用率持续偏高时,通常意味着物理内存不足。临时方案是关闭不必要的服务或重启内存泄漏的进程;长期方案是调整 vm.swappiness 参数(建议值 10~30),让系统优先使用物理内存,设置方式:sysctl -w vm.swappiness=10,并写入 /etc/sysctl.conf 永久生效。
经验案例: 酷番云客户一台 2GB 小内存服务器频繁卡死,free -h 显示 Swap 几乎占满,分析发现是 Java 应用堆内存设置过大(1.5GB),而系统预留不足。建议将 JVM 堆上限调整为物理内存的 50%,同时启用容器内存限制或 systemd 的 MemoryLimit,最终成功消除 Swap 抖动。
磁盘与文件系统
磁盘容量和挂载信息直接影响服务可用性,核心命令是 df -hT 和 lsblk。
df -hT查看每个文件系统的类型、容量、已用、挂载点。注意/dev/sda1若使用率接近 100%,需立即清理日志或扩容。lsblk
以树状图展示块设备、分区和挂载关系,便于识别未挂载的磁盘。
iostat -x 1查看每块磁盘的%util、await、svctm,判断 I/O 是否繁忙。
对于目录大小排查,du -sh / 可逐级定位占用空间大的目录,但首次运行可能较慢,建议加上 --max-depth=1。
经验案例: 酷番云某网站出现“No space left on device”,但 df -h 显示根分区还有 5GB 空间,实际排查发现是 inode 耗尽 大量小文件占满了每个 inode(df -i 可查看),这是因为邮件队列或缓存文件碎小且数量巨大。解决方案是清理 /var/spool 下的无效文件,并将小文件应用迁移至支持大数据量存储的对象存储,同时设置定时清理任务。
网络配置和连通性
网络配置检查包括 IP 地址、路由、端口监听和实际带宽。
ip addr show替代过时的ifconfig,显示所有网卡的 IP、MAC、状态。ip route show查看默认网关和路由表。ss -tlnp替代netstat,列出所有监听端口及对应进程,排查端口冲突时最常用。ping、traceroute、curl -I验证连通性和 HTTP 服务状态。
ethtool eth0 可查看网卡速率与双工模式,若显示 100Mb/s 而实际应为 1Gb/s,通常为网线或交换机端口问题。
经验案例: 酷番云客户报告云主机“网络很慢”,但本地 ping 延迟只有 1ms,通过 ss -s 发现 TCP 连接数异常高,且 TIME-WAIT 状态堆积多。建议调整内核网络参数:net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30,并在出口带宽上使用酷番云提供的 CDN 加速,最终访问延迟降低 40%。
硬件与设备信息
lspci
查看 PCI 设备列表,如 GPU、网卡、RAID 卡。
lsusb查看 USB 设备。dmidecode -t memory查看内存条型号、频率、是否插满。dmidecode -t system查看服务器厂商、序列号。
系统运行时间与历史负载
uptime 不仅显示负载,还显示系统运行时长。如果系统运行时间很长且从未重启,可能存在内核内存碎片或陈旧句柄积累,建议在维护窗口期重启一次。
相关问答模块
问:free -h 的 available 和 free 有什么区别?为什么 free 很小但系统不卡?
答:free 表示完全未被使用的物理内存,而 available 表示 无需交换即可新启动程序的内存估计值,包括可回收的缓存,Linux 会最大化利用空闲内存做文件缓存(Cached),当有程序申请内存时可自动释放这些缓存,free 小不代表内存不足,判断依据是 available 是否充足,若 available 持续低于总内存的 10%,才需要考虑加内存或优化应用。
问:如何快速定位是 CPU 不够还是磁盘 I/O 慢?
答:同时执行 top(按 1 查看每核使用率)和 iostat -x 1 观察 %util。若 CPU 核数使用率接近 100%,而磁盘 %util 低于 80%,瓶颈在 CPU;反之 CPU 空闲但磁盘 %util 接近 100%,则瓶颈在 I/O,也可用 vmstat 1 查看 us(用户态)、sy(内核态)、wa(I/O 等待),wa 持续高于 30% 基本就是 I/O 瓶颈。
互动
你在实际排查 Linux 配置时遇到过哪些“坑”?是 inode 耗尽、swap 抖动,还是网卡速率异常?欢迎在评论区留言分享你的经历,如果你希望获取Linux 配置巡检一键脚本,也可以关注酷番云公众号回复“巡检”,我们将脚本整理好后私信发给你。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/748637.html

