首页
学习
活动
专区
圈层
工具
发布

用Python监控进程的状态

背景 在平时的工作中,经常会有某些进程突然 CPU 飙升,导致系统卡顿。那如何才能监控某个进程的 CPU 利用率呢?我们今天就一起用 Python 来实现下。...环境准备 依赖库 psutil 是 Python 的一个很流行的库,用来获取系统资源信息的。它支持 windows 和 linux,可以获取 CPU,内存,网络,硬盘等信息。...安装 pip install psutil 代码准备 # 导入依赖库 import psutil,time import re,string # 打印系统全部进程的PID列表 print(psutil.pids...()) # 根据进程名获取进程PID def get_pid(name): process_list = list(psutil.process_iter()) print(process_list...PID获取进程对象 def get_process_obj_by_id(pid): try: p = psutil.Process(pid) except Exception

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    监控进程

    让我们看看 Monit 的用法,假设我们要监控 Nginx 进程,一旦其 CPU 使用率连续 5 次轮询周期里均超过 50% 的话,就重启进程,此时就可以按照如下方式设置: check process...如果进程本身不存在 pidfile,那么也可以使用 matching 语法来匹配进程。...再让我们看看 Supervisor 的用法,假设我们要监控 100 个 PHP 实现的 Worker 进程,用来提供 Gearman 之类的服务,由于 PHP 本身运行模式的缘故,为了避免严重的内存泄漏问题...不管用什么来监控进程,如果监控者本身挂了,那么被监控者无疑就失控了。...此时需要考虑如何监控监控者本身,这似乎是一个递归问题,不过文章开头我们说过,Linux 本身的初始化系统就能实现简单的监控功能,以 SysVinit 为例,编辑 /etc/inittab 文件: SU:

    1.2K40

    用Python实现网速监控

    用Python实现网速监控在网络应用开发和系统监控中,监控上传和下载速度是非常重要的一项任务。通过实时监控网速,我们可以及时了解网络性能,并进行相应的优化和调整。...本文将介绍如何使用Python来实现简单的网速监控功能。1. 安装依赖库首先,我们需要安装一个名为speedtest-cli的第三方库,它可以帮助我们方便地测试网络速度。...编写监控脚本接下来,我们编写一个Python脚本来实现网速监控。...运行监控脚本运行上面的Python脚本,即可实时监控当前的上传和下载速度。可以定时执行该脚本,或者结合其他监控工具实现更灵活的监控策略。 通过以上步骤,我们就实现了用Python监控网速的功能。...在Python编程中,结合speedtest-cli可以实现网络监控、性能评估等功能,为开发和运维工作提供有益支持。

    2.6K10

    监控进程内存

    缘由 需要获取某程序运行过程中的内存消耗,一般情况可以使用 top 命令来人工分析,不过我遇到一个程序其内部调用包括 python, R, 以及一系列 linux 命令,这就导致人工统计不太现实 问题变成统计进程及其子进程的内存使用...,可以通过 pstree 命令查看进程与子进程的关系,但是其输出图形,不太方便获取所有子进程ID,因此打算自己编写 C++ 代码来实现 思路 用伪码表示: 当待查询进程存在: 遍历用户所有进程,...获取每个进程的ID和父进程ID及内存 维护一个表,记录与待查询进程相关的子进程及其内存,初始化只有待查询进程 遍历所有进程: 如果当前进程的父进程在表中:.../pm 25201 2 监控 id 为25201的进程,刷新间隔为2秒 结果输出: 2020-09-18 17:37:05 1932 2020-09-18 17:37:07 1932 2020-09-18...17:37:09 1932 这里输出的内存单位是 KB 注意:由于需要进程启动之后才能开启监控,导致进程内存无法从0开始;当进程结束,则监控程序也会退出 关于结果展示,直接将输出结果的第二列和第三列拷贝到

    1.9K10

    monit监控服务进程

    Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误....添加http服务监控 vi http  check process http with pidfile /usr/local/apache/logs/httpd.pid    start program...,然后查看进程是否启动 如果需要监控tomcat,需要开启tomcat的pid文件,默认是没有的 修改脚本,添加蓝色部分 vi /usr/local/tomcat/bin/catalina.sh #  ...monit /etc/init.d/monit restart 测试关闭tomcat,查看tomcat是否启动 否则服务可能没有停止命令,比如rsync,那么只能kill掉,注意不要用killall,用pkill.../etc/init.d/monit restart 注意: Monit是是根据被监控的进程的pid文件来检测的,如果没有pid文件,是无法使用的。

    1.3K20

    Monit进程监控实践

    Monit的核心功能就是邮件通知,当你配置好需要监控的进程之后,无论是进程死亡,或者是进程变更都会发送报警邮件并且会更具你的预先配置好的命令尝试重启它,更牛逼的事当monit被关闭的时候也会发送邮件通知...附加功能 比如你不是用的云服务器自己管理的机器,但是机器数量又没有特别多没有到要搭建一套完整的监控系统的份上(zabbix或open-falcon)的份上Monit可以比较好的帮你低成本的解决这个问题...) 注意:配置文件中还有系统报警等可以自行了解这里不做太多说明 配置报警的几种方式 重中之重就是监控进程或者是服务器的报警,我们一般会选择/etc/monit.d/下面建立和监控的进程名一样的文件,Monit...会自动读取解析,这里先来介绍几种常见的配置 按照PID进行监控 使用PID进行监控的基本上是一些程序组件比如Nginx,PHP-FPM,Supervisor,KafKa等,它们都会有一个共同点就是会有一个...*.pid的文件来记录系统进程标示,所以我们如下配置: /etc/monit.d/nginx check process nginx with pidfile /var/run/nginx.pid #通过

    1.4K30

    用python监控您的window服务

    最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候...脚本的工作原理是这样的:脚本读取配置文件,读取预先配置好的调用系统服务的路径和所要监控的服务在进程管理器中的进程名,之所以要用配置文件,是为了方便给需要的朋友,你只需要修改进程名和系统路径,源代码就不需要修改了...,我是需要监控SshClient.exe 这个程序,那就配置好他的调用的系统路径和他在任务管理器里面的进程名。...     if ProcessName in ProList: #判断进程名是否在列表中,如果是True,则所监控的服务正在 运行状态,#打印服务正常运行        print ''         ...print ''     else: #如果进程名不在列表中,即监控的服务挂了,则在log文件下记录日志#日志文件名是以年月日为文件名         f=open('.

    80630

    Linux 进程内存监控:Linux 内存调优之进程内存深度监控

    写在前面 博文内容涉及 Linux 进程内存监控 监控方式包括传统工具 ps/top/pmap ,以及 cgroup 内存子系统,proc 内存伪文件系统 监控内容包括进程内存使用情况, 内存全局数据统计...,内存事件指标,以及进程内存段数据监控 理解不足小伙伴帮忙指正 :),生活加油 我看远山,远山悲悯 持续分享技术干货,感兴趣小伙伴可以关注下 ^_^ 监控进程的内存使用量 这里分析的工具主要是原生工具...,后面还会分享一些 BPF 相关的内存观察工具以及系统内存的全局监控 PS/TOP 一般的内存监控工具,对于进程级别的,会使用如 ps/top 命令, 通过指标 VIRT 或 VSZ 和 RES 或 RSS...Cgroup 子系统 通过 Cgroup 子系统来获取内存信息,在获取之前需要获取当前进程的PID以及对应的 Cgroup 分组 获取 htop 进程ID, htop 是一个类似 top 的系统整体性能监控的进程...-- python3.9 0000561ae3589000 4K r---- python3.9 。。。。。。。。。。。。。。。。

    2.6K42

    monit监控服务进程 原

    Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。 它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误....添加http服务监控 vi http  check process http with pidfile /usr/local/apache/logs/httpd.pid    start program...,然后查看进程是否启动 如果需要监控tomcat,需要开启tomcat的pid文件,默认是没有的 修改脚本,添加蓝色部分 vi /usr/local/tomcat/bin/catalina.sh #  ...monit /etc/init.d/monit restart 测试关闭tomcat,查看tomcat是否启动 否则服务可能没有停止命令,比如rsync,那么只能kill掉,注意不要用killall,用pkill.../etc/init.d/monit restart 注意: Monit是是根据被监控的进程的pid文件来检测的,如果没有pid文件,是无法使用的。

    1.4K30
    领券