Linux 怎么查系统性能?一文搞懂 top、htop、vmstat

发布时间 - 2025-12-04 00:00:00    点击率:
查Linux系统性能核心是CPU、内存、磁盘I/O和进程活动,top看实时进程与资源占用,htop是其增强交互版,vmstat擅长统计系统级吞吐并发现趋势性问题。

查 Linux 系统性能,核心是看 CPU、内存、磁盘 I/O 和进程活动。最常用也最直接的工具就是 tophtopvmstat——它们分工明确:top 看实时进程和资源占用,htop 是 top 的增强交互版,vmstat 则擅长统计系统级整体吞吐(尤其适合抓异常波动)。掌握这三者,基本覆盖日常排查 90% 的性能问题。

top:原生可靠,重点看这 5 行

运行 top 后,默认顶部显示系统概览,关键信息集中在前几行:

  • 第一行(uptime):显示运行时间、当前登录用户数、负载平均值(1/5/15 分钟),数值 > CPU 核心数就说明有排队等待,需警惕
  • 第二行(Tasks):总进程数 + 运行中/睡眠/停止/僵死状态数量,若 Z(zombie)持续不为 0,可能有程序没正确回收子进程
  • 第三行(%Cpu(s)):注意区分 us(用户态)、sy(内核态)、id(空闲)、wa(I/O 等待)——wa 高往往意味着磁盘慢或有大量读写
  • 第四、五行(Mem / Swap):关注 freeavailable(后者才是真实可用内存),Swap used 持续上升说明物理内存不足
  • 进程列表:按 %CPU%MEM 排序(按 PM 键),快速定位“吃资源大户”;按 T 可按运行时间倒序,找长期霸占 CPU 的老进程

htop:top 的友好升级版,操作更直观

htop 不是所有系统默认安装,先用 sudo apt install htop(Debian/Ubuntu)或 sudo yum install htop(CentOS/RHEL)装好。启动后优势明显:

  • 彩色显示,CPU、内存、Swap 使用率以横向条形图呈现,一眼看出压力分布
  • 支持鼠标点击排序,方向键上下选择进程,F9 杀进程比 top 的 k 更顺手
  • 左侧显示完整命令路径(top 默认只显示进程名),避免同名进程混淆(比如多个 python 实际跑的是不同脚本)
  • 底部快捷菜单清晰(如 F2 设置显示项、F3 搜索进程),新手上手零门槛
  • 可横向滚动查看长命令行,对容器或 Java 应用的复杂启动参数特别有用

vmstat:看趋势,别只盯“此刻”

vmstat 不是实时刷新界面,而是按秒采样输出统计快照,更适合发现“慢慢变糟”的问题。常用命令:vmstat 2 5(每 2 秒一次,共 5 次)。

  • r 列:运行队列长度,持续 > CPU 核心数,说明 CPU 资源争抢严重
  • si/so 列:swap in/out(单位 KB/s),非零且持续波动,代表内存不足导致频繁换页,性能会断崖下跌
  • bi/bo 列:块设备读/写(单位 blocks/s),结合 iostat -x 1 可进一步判断是否磁盘瓶颈
  • us/sy/id/wa:和 top 第三行含义一致,但 vmstat 把 wa 单独列出来,方便你盯住 I/O 等待是否随时间恶化
  • 第一次输出是开机以来平均值,跳过它;从第二次开始才是最近采样数据,这才是你要分析的

基本上就这些。top 看“谁在作怪”,htop 让你看得更轻松,vmstat 帮你确认“是不是越来越糟”。三者配合,不用装一堆监控工具,也能把大多数性能问题摸清楚。


# linux  # python  # java  # centos  # ubuntu  # 工具  # ai  # ios  # linux系统 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  SQL查询语句优化的实用方法总结  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何快速生成ASP一键建站模板并优化安全性?  PythonWeb开发入门教程_Flask快速构建Web应用  JS经典正则表达式笔试题汇总  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Firefox Developer Edition开发者版本入口  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  文字头像制作网站推荐软件,醒图能自动配文字吗?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  简历在线制作网站免费版,如何创建个人简历?  简历没回改:利用AI润色让你的文字更专业  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何快速搭建安全的FTP站点?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Swift中循环语句中的转移语句 break 和 continue  如何在搬瓦工VPS快速搭建网站?  Java垃圾回收器的方法和原理总结  浅谈Javascript中的Label语句  Laravel如何生成URL和重定向?(路由助手函数)  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何快速生成专业多端适配建站电话?  Laravel如何实现API资源集合?(Resource Collection教程)  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel怎么上传文件_Laravel图片上传及存储配置  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何创建自定义Facades?(详细步骤)  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何使用Gate和Policy进行授权?(权限控制)  如何在阿里云高效完成企业建站全流程?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何生成API文档?(Swagger/OpenAPI教程)