如何检查服务器上的进程,具体步骤有哪些?

服务器进程检查是运维日常中最基础也最关键的一环,通过ps、top等命令可以快速获取进程状态,配合工具和脚本可实现自动化监控与异常预警。

服务器进程检查命令:ps与top实战对比

在服务器上检查进程,ps和top是两个必须掌握的命令,它们分别提供快照和实时视图,适用于不同场景。

杀进程的三种手段
加载中
杀进程的三种手段

ps命令:快照查看进程

ps命令用于显示当前系统的进程快照,最常用的组合是ps aux,它会列出所有用户的所有进程,并显示CPU、内存占用、进程状态等关键信息。

  • 输出字段:USER(进程用户)、PID(进程ID)、%CPU(CPU使用率)、%MEM(内存使用率)、VSZ(虚拟内存)、RSS(实际内存)、TTY(终端)、STAT(状态)、START(启动时间)、TIME(累积CPU时间)、COMMAND(命令)。
  • 常用选项ps -ef 以标准格式显示,ps -eo pid,%cpu,%mem,cmd 自定义输出列。
  • 实操技巧:结合grep过滤,例如ps aux | grep nginx 快速定位特定进程,使用ps -eo pid,stat,cmd | grep Z 查找僵死进程。
  • 扩展用法ps -eo pid,etimes,cmd 查看进程运行时长,ps -U root 只显示指定用户进程。

top命令:实时监控进程

top命令提供动态更新的进程列表,默认按CPU占用排序。

  • 交互操作:进入top界面后,按P按CPU排序,M按内存排序,z开启彩色显示,c显示完整命令路径,1查看每个CPU核心负载。
  • 关键信息load average 表示系统负载,Tasks 行显示进程总数及状态(running、sleeping、stopped、zombie)。
  • 实用参数top -p 1234 监控特定PID,top -b -n 1 以批处理模式输出一次快照,适合脚本采集。top -d 2 设置刷新间隔为2秒。

其他命令补充

  • htop:top的增强版,支持鼠标操作、树形视图、垂直/水平滚动,安装命令yum install htopapt install htop
  • pgrep:通过进程名查找PID,例如pgrep -f java 匹配包含”java”的进程,支持-u限定用户。
  • pstree:以树状图显示进程父子关系,帮助理解进程依赖,pstree -p 1234

    如何检查服务器上的进程,具体步骤有哪些?

    显示指定PID及其子进程。

行业共识认为,熟练使用ps和top是入门运维的第一课,它们能解决大部分进程查看需求。

服务器进程异常排查:从CPU到内存

当服务器出现响应缓慢或资源耗尽时,进程异常是首要怀疑对象,下面针对常见场景提供排查路径。

CPU占用高:定位进程与线程

  1. 执行top,按P排序,找出CPU占用最高的进程PID。
  2. 如果进程是多线程应用,使用top -H -p <PID> 查看线程级CPU占用。
  3. 记录线程ID,转换为十六进制:printf "%xn" <线程ID>
  4. 利用jstack(Java进程)或strace跟踪系统调用,分析具体行为。
  5. 常见原因包括死循环、频繁GC、大量计算任务,可通过perf top采样内核级热点。
  6. 网络相关进程:使用lsof -i :端口ss -tlnp 查看监听端口的进程PID,结合netstat进一步确认连接状态。

内存占用高:检查泄漏

  1. 使用topM排序,观察RES列,找出物理内存占用大户。
  2. 查看进程详细内存映射:pmap -x <PID>smem -r -p 按比例排序。
  3. 注意进程的VIRT(虚拟内存)和RES(驻留内存)差异,虚拟内存过大可能指示内存泄漏。
  4. 对于Java进程,使用jmap -heap <PID> 查看堆内存使用,结合jstat监控GC情况。
  5. 若怀疑泄漏,可定期采集内存快照对比,使用/proc/<PID>/smaps 观察私有内存增长。
  6. 临时措施:调整进程内存限制,如ulimit -v 或cgroup,但需注意服务稳定性。

进程卡死与僵死处理

  • 僵死进程:状态为Z,表示进程已终止但父进程未回收,直接kill -9无法清理,需杀死父进程或重启服务,使用kill -18 <PPID> 发送SIGCONT可能暂时唤醒父进程以回收子进程。
  • 卡死进程:状态D(不可中断睡眠)或T(暂停),通常等待I/O或信号,可使用strace跟踪其系统调用,找出阻塞点,对于D状态,检查磁盘I/O或NFS挂载是否正常。
  • 安全kill:先尝试kill <PID>(SIGTERM),等待几秒后再用kill -9 <PID>

    如何检查服务器上的进程,具体步骤有哪些?

    (SIGKILL),避免随意使用-9,可能导致数据丢失,对于群体僵尸,优先重启对应服务而非逐个杀进程。

服务器进程管理工具对比:htop与glances

除了基础命令,现代运维常使用更强大的工具来提升效率,以下是两款主流开源工具的对比。

htop:交互式进程查看器

  • 安装:通过包管理器一键安装,轻量级,对系统资源影响小。
  • 功能:彩色显示、树形视图、可自定义列、支持鼠标点击排序、F9发送信号、直接搜索进程。
  • 适用场景:日常登录服务器后快速查看进程状态,替代top,可通过htop -u appuser 只看特定用户进程。

glances:全能监控工具

  • 安装pip install glances,依赖较多,资源占用比htop略高,也可通过系统包管理器安装。
  • 功能:除进程外,还监控CPU、内存、磁盘、网络、传感器等,支持Web界面和远程客户端。glances -s 启动服务端,glances -c 客户端IP 远程连接。
  • 输出:支持JSON、CSV格式,便于集成到监控系统。glances --export json 持续输出。
  • 价格:开源免费,社区活跃,部分高级功能需额外插件,但核心功能完整。

其他工具与商业方案

工具 类型 特点 价格
htop 终端工具 轻量、交互强 免费
glances 终端/Web 多维度监控 免费
top/ps 内置 零依赖,必学 免费
Zabbix 企业级 分布式监控,进程自动发现,告警灵活 社区版免费,企业版按节点收费
Prometheus+Exporters 开源自建 灵活,学习成本高,适合定制化 免费,需自建和运维

业内专家指出,选择工具应根据团队规模和预算,小团队用开源工具即可,大型企业可考虑商业支持,价格方面,商业方案通常按节点或功能订阅,具体费用因厂商而异。

服务器进程检查脚本自动化

手动检查无法应对持续监控需求,编写脚本结合任务调度是常见做法。

检查脚本示例

如何检查服务器上的进程,具体步骤有哪些?

#!/bin/bash # 检查进程CPU和内存,超过阈值则告警 PID=$1 CPU_THRESHOLD=80 MEM_THRESHOLD=80 CPU=$(ps -p $PID -o %cpu= | awk '{print int($1)}') MEM=$(ps -p $PID -o %mem= | awk '{print int($1)}') if [ "$CPU" -gt "$CPU_THRESHOLD" ] || [ "$MEM" -gt "$MEM_THRESHOLD" ]; then echo "$(date) 进程$PID 资源占用过高: CPU=$CPU%, MEM=$MEM%" >> /var/log/proc_monitor.log fi

定时执行

使用crontab设置每分钟检查一次:

     /path/to/script.sh 1234

也可将脚本扩展为自动分析所有进程,或对接告警系统如钉钉、邮件,注意脚本权限和路径变量,避免在cron中无法识别命令。

进阶:自动采集并告警

#!/bin/bash
# 遍历所有进程,检测CPU超过80%的进程并告警
ps -eo pid,%cpu,cmd --no-headers | awk '$2 > 80 {print $1,$2,$3}' | while read pid cpu cmd; do
    echo "WARNING: PID $pid CPU $cpu% CMD $cmd" | mail -s "Process High CPU" admin@example.com
done

Q&A:服务器进程检查常见问题

服务器进程检查命令有哪些?

最基础的是pstopps aux查看快照,top实时监控。htop提供更友好的交互界面,pgrep按名称查找PID,pstree显示进程树,对于详细分析,可使用strace跟踪系统调用,perf分析性能瓶颈。lsofss用于检查进程与端口、文件的关联。

服务器进程占用高怎么排查?

首先使用top按CPU或内存排序,定位占用高的进程PID,然后根据进程类型进一步分析:Java进程用jstackjmap,数据库进程检查慢查询,Web服务排查访问日志,若进程僵死,查看状态是否为Z,并处理父进程,同时检查系统负载和IO等待,排除硬件瓶颈,使用iostatvmstat辅助判断。

如何监控服务器进程状态?

定期执行pstop并记录日志,或使用crontab运行检查脚本,更完善的方案是部署开源监控工具如glances(实时Web界面)或Prometheus+node_exporter(采集进程指标),企业级监控系统如Zabbix支持进程自动发现和告警,适合大规模环境,无论哪种方式,关键是要设置合理的阈值和告警渠道,确保问题能及时被发现。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/542330.html

(0)
房产网站系统登录系统怎么设计?,登录系统网站有哪些功能?
上一篇 2026年8月3日 13:12
服务器怎么配置端口?,具体配置步骤是什么?
下一篇 2026年8月3日 13:12

相关推荐

  • 广州ECS云服务器自动关机的原因,云服务器为什么会自动关机

    广州ECS云服务器自动关机,核心原因主要集中在资源耗尽触发保护机制、系统软件冲突或硬件底层故障三大维度,其中因CPU或内存利用率过载导致的强制断电占比最高,用户应优先排查资源监控数据,再逐步深入系统日志与硬件层面排查,资源耗尽与阈值触发保护服务器并非孤立运行的个体,而是受云平台严密监控的计算单元,CPU利用率过……

    2026年3月30日
    8700
  • 5118关键词挖掘工具到底怎么样?5118关键词挖掘工具免费吗

    5118关键词挖掘工具在百度SEO领域属于第一梯队的综合性数据平台,其核心优势在于海量词库覆盖与实时竞价数据抓取,适合需要精细化运营和长尾词布局的中大型网站及专业SEO从业者,在SEO工作流中,选词往往是决定流量天花板的关键一步,很多新手容易陷入“凭感觉选词”的误区,导致投入大量精力优化后,排名依然纹丝不动,5……

    2026年6月24日
    1700
  • 韩语在线翻译多语言设置怎么设置?,好用吗?

    在韩语在线翻译中,多语言设置直接影响翻译质量和操作效率,合理配置语言对、术语库和翻译模式,能让工具更精准地处理不同场景下的内容,多语言设置为何是韩语在线翻译的核心韩语翻译的特殊性决定了多语言设置不能简单理解为语言列表切换,韩语语法结构、敬语体系以及多义词众多,翻译引擎需要明确源语言和目标语言的对应关系,才能调用……

    2026年7月31日
    2200
  • HTTPDNS怎么配置?HTTPDNS和传统DNS有什么区别

    HTTPDNS通过绕过运营商本地DNS解析,直接获取最准确的CDN节点IP,从而解决域名劫持、解析慢和跨网访问延迟高的问题,是提升APP网络体验的核心方案,在移动互联网时代,网络连接的稳定性与速度直接决定了用户的留存率,传统的DNS解析机制就像是一个混乱的本地电话簿,不仅更新滞后,还容易被中间商篡改,HTTPD……

    2026年6月5日
    4200
  • 如何删除WordPress文章或页面类别?WordPress自定义分类目录怎么删

    删除WordPress文章或页面类别的最简单方法是直接通过后台“所有文章”或“所有页面”列表,勾选目标条目后选择“移至回收站”,彻底删除则需在回收站中再次执行删除操作,无需修改数据库或安装复杂插件,很多刚接触WordPress的站长都遇到过这种情况:网站上线初期为了测试主题效果,或者在迁移内容时,留下了大量不再……

    2026年6月23日
    2110
  • 广州DDOS怎么防?高防服务器哪家好

    防御DDoS攻击的核心在于构建“云端清洗+本地防护+高可用架构”的纵深防御体系,单纯依赖服务器本地防火墙已无法抵御现代大流量攻击,必须借助专业的高防服务实现流量分流与清洗,对于广州地区的各类互联网企业而言,业务连续性直接关系到营收与品牌信誉,面对日益复杂的DDoS威胁,最有效的策略是提前接入高防IP或高防CDN……

    2026年3月31日
    7800
  • 服务器增量托管该怎么操作,需要注意什么?

    服务器托管的核心在于选择可靠的数据中心和适合的托管方案,而增量托管则允许你按需分批扩展服务器资源,避免一次性投入过高成本, 这种模式尤其适合业务增长不确定的中小企业,或者需要逐步迁移服务器的场景,既能降低初期压力,又能灵活调整资源,服务器怎么托管的完整流程服务器托管不是简单把设备放进机房,它涉及一连串决策和操作……

    2026年8月2日
    400
  • 独立服务器带宽和VPS带宽区别在哪?独立服务器带宽和VPS带宽哪个好?

    独立服务器带宽与VPS带宽的核心区别在于资源的独占性与共享性,独立服务器提供物理层面的带宽独享,性能强劲且稳定,适合大型业务;VPS带宽则是从物理服务器虚拟化分割而来,本质上是共享资源,成本较低但受限于宿主机总带宽,选择何种方案,取决于业务规模、流量峰值预算以及对稳定性的极致追求,物理架构决定性能上限带宽的本质……

    2026年3月8日
    11600
  • 如何搭建IDC机房日志管理平台?IDC机房日志管理系统有哪些

    搭建IDC机房日志管理平台的核心在于构建集中化采集、实时分析与自动化告警的闭环体系,通过ELK或EFK技术栈实现从数据接入到可视化的全链路监控,从而将故障响应时间从小时级压缩至分钟级,IDC机房的日志数据就像机房的“黑匣子”,每一行记录都藏着服务器健康、网络波动甚至潜在攻击的痕迹,过去,运维人员面对的是散落在成……

    2026年6月16日
    2310
  • html网站后台代码怎么弄?网站后台管理代码怎么写

    HTML网站后台代码并非单纯的静态页面堆砌,而是通过服务器端脚本(如PHP、Python或Node.js)动态生成HTML结构,实现数据交互与管理功能的核心逻辑层,很多初学者误以为后台就是写一堆HTML标签,真正的后台开发重点在于“动态渲染”与“数据流转”,前端负责展示,后端负责处理业务逻辑,理解这一点,是构建……

    2026年6月6日
    3400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注