linux,docker查看资源消耗总结

在linux和docker中我们将一个程序运行到后台,之后我们想查看它的运行状态,对于服务器的资源消耗等等

1.linux查看进程

复制代码
ps aux | grep python
  • ps aux:列出所有正在运行的进程。
  • grep python:过滤出包含 python 的进程

2.linux查看进程详细信息

复制代码
ps -p 22101 -o pid,cmd

如果你知道进程的 PID(例如22101),可以使用 ps 命令查看该进程的详细信息,

  • -p 22101:指定进程 ID。
  • -o pid,cmd:显示 PID 和命令行。

总结:ps 命令可以用于查看进程的瞬时资源使用情况。结合 aux 选项可以显示所有用户的进程并包括更多详细信息,格式如下:

复制代码
ps aux | grep <PID>

ps -p <PID> -o pid,vsz,rss,%cpu,%mem,cmd
  • vsz:虚拟内存使用量(KB)
  • rss:常驻内存使用量(KB)
  • %cpu:CPU 使用百分比
  • %mem:内存使用百分比
  • cmd:命令行

3.linux实时查看进程的资源使用情况

复制代码
top

top 命令是实时显示进程的资源使用情况的常用工具。要查看特定进程的资源使用情况,可以运行 top 命令,然后使用 P 键按照 CPU 使用排序,或者 M 键按照内存使用排序。

如果只想查看某个特定进程的资源使用情况,可以在 top 运行后按下 o 键并输入 PID=<进程ID>。

4.linux监视进程磁盘io使用情况

复制代码
sudo iotop -p <PID>

iotop 会显示当前进程的 I/O 读写操作。

5.docker查看当前运行的程序的状态

复制代码
docker stats

除此之外,ps命令一样可以列出目前正在运行的所有容器以及它们的基本配置,-a则会列出所有包括目前不在运行的容器。

复制代码
docker ps
docker ps -a

如果像检查docker容器内的进程,先进入docker容器内部,之后再采用linux查询进程的方法。

复制代码
docker exec -it <container_id> /bin/bash

6.linux了解进程都在干什么

复制代码
lsof -p <PID>

lsof 命令列出进程打开的文件和网络连接,这可以帮助了解进程的活动情况

复制代码
strace -p <PID>

strace 可以跟踪进程的系统调用,了解它们在执行什么操作

运用:检查内存泄漏

复制代码
ps aux --sort=-%mem > mem_usage_1.txt
sleep 60
ps aux --sort=-%mem > mem_usage_2.txt
diff mem_usage_1.txt mem_usage_2.txt

ps: 定期记录进程的内存使用情况,然后对比不同时间点的使用情况

lsof: 列出进程打开的文件描述符,定期检查某个进程的打开文件描述符数量,检查是否不断增加,等等

另外的知识点:检查网络连接泄漏

复制代码
netstat -anp | grep <PID>

netstat 或 ss: 查看进程的网络连接情况。检查是否有大量的连接未关闭或连接数不断增加

相关推荐
古法老登瞎折腾4 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
琥珀.5 小时前
mysql中json数组转列表查询
linux·运维·服务器
dawnsky.liu5 小时前
在 RHEL 中使用 goose 实现远程主机管理
linux·运维·ai
Linux运维技术栈7 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
云边云科技_云网融合8 小时前
连锁门店组网怎么做?SD-WAN 多分支组网的架构选型、部署与成本结构
服务器·数据库·php
云上先途18 小时前
企业 AI 服务部署周期多久,会不会影响原有业务运转?
大数据·运维·人工智能
网络小江8 小时前
组网第35课:静态路由——下一跳、出接口、默认路由、浮动静态与黑洞路由
服务器·网络·默认路由·黑洞路由·浮动静态路由
执伞人ONLY9 小时前
AI知识库自动化知识加工没做对,人工整理永远追不上知识产生
运维·人工智能·自动化
slongzhang_9 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
叼烟扛炮9 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节