Linux查看服务器状态,哪些命令最实用?
- 云服务器
- 2025-12-15
- 3
在Linux系统中,查看服务器状态是系统管理和运维的核心任务之一,通过多种命令和工具可以全面监控服务器的硬件资源、运行进程、网络连接、系统负载等关键信息,以下从不同维度详细介绍Linux查看服务器状态的方法及实用技巧。
系统整体状态监控
-
top命令
top是动态监控进程资源的实时工具,默认每3秒刷新一次,执行top后,界面分为统计区和进程区,统计区显示系统总进程数、运行态/睡眠态进程数、CPU使用率(包括us用户空间、sys内核空间、id空闲、wa等待I/O)、内存及交换分区使用情况,进程区按CPU或内存占用排序,可通过P(CPU)、M(内存)切换排序字段,k终止进程,q退出,观察us值持续高于70%可能意味着CPU密集型任务过多,而wa值过高则表明磁盘I/O存在瓶颈。
-
htop命令
htop是top的增强版,支持彩色显示、鼠标操作、进程树视图(F5切换),可直接通过光标选择进程并操作,其界面更直观,左侧实时显示CPU各核心使用率,底部显示内存、交换分区、任务统计等信息,安装后执行htop,相比top能更快速定位异常进程。
硬件资源状态查看
-
CPU信息

- 物理核心数/逻辑核心数:lscpu命令显示CPU架构、核心、线程数等详细信息,如“CPU(s): 8”表示逻辑核心数,“Online CPU(s) list: 07”表示可用核心。
- CPU使用率:mpstat命令可查看各核心详细使用情况,如mpstat P ALL 1每秒统计各核心的us、sy、idle等值,用于定位高负载核心。
- CPU温度:安装lmsensors后执行sensors,可查看CPU及主板传感器温度,需确保硬件支持监控。
-
内存信息
- 内存使用概况:free h以人类可读格式(GB/MB)显示总内存、已用、空闲、缓冲/缓存、交换分区使用情况,buff/cache”为系统缓冲和缓存,可被回收,实际可用内存为“free+buffers/cache”。
- 内存详细分配:cat /proc/meminfo查看内存细分项,包括Slab内存、Page Cache等,适用于排查内存泄漏问题。
-
磁盘状态
- 磁盘分区及使用率:df h显示各分区总容量、已用、可用及使用率,重点关注根分区()和/var(日志常占用过高)的使用率。
- 磁盘I/O性能:iostat dx 1显示磁盘设备名称、%util(I/O等待时间占比)、await(平均I/O时间)、r_await/w_await(读写平均时间),%util持续超过80%说明磁盘瓶颈严重。
- 磁盘健康状态:smartctl a /dev/sda(需安装smartmontools)查看硬盘SMART信息,包括通电时间、坏道、读写错误率等,提前预警硬盘故障。
-
网络连接与端口

- 活跃连接:netstat anpt显示所有TCP/UDP连接及监听端口,p显示进程ID/PID,结合grep过滤特定端口,如netstat anpt | grep :80查看Web服务连接状态。
- 连接数统计:ss s快速统计TCP连接状态(如ESTABLISHED、TIME_WAIT)数量,ss tulpn显示监听端口及进程,功能类似netstat但性能更优。
-
网络流量
- 实时流量:iftop按主机/端口排序显示实时流量,安装后执行iftop i eth0监控指定网卡,TX/RX分别表示发送/接收流量。
- 历史流量:nload实时显示网卡入/出流量图表,sar n DEV 1记录每秒网络设备流量,需安装sysstat工具包。
-
进程管理
- 进程快照:ps ef或ps aux查看所有进程,aux显示CPU/内存占用,grep过滤特定进程,如ps aux | nginx。
- 实时进程监控:pgrep nginx查找nginx进程PID,pstree p以树形结构展示进程父子关系,便于分析进程依赖。
-
系统服务状态

- systemd服务管理:systemctl status nginx查看服务运行状态、日志及进程信息;systemctl isactive nginx判断服务是否激活;journalctl u nginx f实时跟踪服务日志。
- 传统服务(SysVinit):service nginx status查看服务状态,chkconfig list列出各服务开机启动状态。
-
系统负载
- 负载平均值:uptime显示1分钟、5分钟、15分钟负载平均值,超过CPU核心数表示系统过载,如“load average: 2.5, 3.1, 2.8”在8核服务器上处于高负载。
- 进程资源统计:vmstat 1监控进程(procs)、内存(memory)、 swap、I/O(block)、系统(system)和CPU(cpu)状态,r列就绪进程数持续大于CPU核心数时需扩容。
-
系统日志
- 内核日志:dmesg | tail查看最新内核消息,包括硬件错误、驱动加载异常等。
- 系统日志:tail f /var/log/messages(CentOS)或/var/log/syslog(Ubuntu)实时跟踪系统日志,结合grep过滤关键字(如“error”)排查问题。
服务器状态监控工具推荐
工具名称 功能特点 适用场景 Glances Python开发,跨平台,显示CPU、内存、磁盘、网络、进程等,支持Web界面 全局服务器状态实时监控 Nagios 开源监控工具,支持插件扩展,可监控服务、主机、日志,提供告警机制 企业级分布式服务器集群监控 Zabbix 企业级监控解决方案,支持自动发现、自定义监控项、可视化报表 大规模服务器及应用性能监控 Prometheus 时序数据库,通过Exporter采集指标,Grafana可视化,适合云原生环境 容器化、微服务架构监控 相关问答FAQs
Q1: 如何快速定位导致CPU使用率过高的进程?
A: 可通过以下步骤定位:
- 执行top c显示完整命令行,按P按CPU排序,找到占用率最高的进程;
- 若需进一步分析,使用pidstat p <PID> t查看该进程的线程级CPU占用;
- 结合strace p <PID>跟踪系统调用,或perf top p <PID>分析CPU性能事件,定位具体代码瓶颈,若为恶意进程,可使用kill 9 <PID>强制终止。
Q2: 服务器内存使用率过高时,如何判断是否为内存泄漏?
A: 判断内存泄漏需结合动态监控和历史数据:
- 执行free h观察“available”内存是否持续下降,buff/cache”未显著增加;
- 使用cat /proc/<PID>/status查看进程RSS(常驻内存集)大小,若某进程RSS随时间线性增长,可能存在泄漏;
- 通过smem k按内存占用排序进程,或使用valgrind tool=memcheck leakcheck=full ./程序检测内存泄漏(需重新编译程序),若确认泄漏,需重启相关服务或升级修复内存泄漏的版本。
网络状态监控
进程与服务状态
系统负载与日志分析