当前位置: 首页 > news >正文

查询资源消耗

import subprocess

def get_cpu_usage(pid, duration):
output = subprocess.check_output([‘pidstat’, ‘-d’, ‘-p’, str(pid), ‘1’, str(duration)]).decode(‘utf-8’)
lines = output.strip().split(’\n’)
cpu_usage = []
for line in lines[4:]:
fields = line.split()
cpu_usage.append(float(fields[6]))
max_cpu = max(cpu_usage)
avg_cpu = sum(cpu_usage) / len(cpu_usage)
return max_cpu, avg_cpu

def get_memory_usage(pid, duration):
output = subprocess.check_output([‘pidstat’, ‘-r’, ‘-p’, str(pid), ‘1’, str(duration)]).decode(‘utf-8’)
lines = output.strip().split(’\n’)
mem_usage = []
for line in lines[4:]:
fields = line.split()
mem_usage.append(float(fields[6]))
max_mem = max(mem_usage)
avg_mem = sum(mem_usage) / len(mem_usage)
return max_mem, avg_mem

def get_disk_io(pid, duration):
output = subprocess.check_output([‘pidstat’, ‘-d’, ‘-p’, str(pid), ‘1’, str(duration)]).decode(‘utf-8’)
lines = output.strip().split(’\n’)
disk_io = []
for line in lines[4:]:
fields = line.split()
disk_io.append(float(fields[5]))
max_disk_io = max(disk_io)
avg_disk_io = sum(disk_io) / len(disk_io)
return max_disk_io, avg_disk_io

def get_net_io(pid, duration):
output = subprocess.check_output([‘pidstat’, ‘-n’, ‘-p’, str(pid), ‘1’, str(duration)]).decode(‘utf-8’)
lines = output.strip().split(’\n’)
net_io = []
for line in lines[4:]:
fields = line.split()
net_io.append(float(fields[4]) + float(fields[7]))
max_net_io = max(net_io)
avg_net_io = sum(net_io) / len(net_io)
return max_net_io, avg_net_io

pid = 12345 # 替换为你需要测试的进程的PID
duration = 10 # 替换为你的测试时长

max_cpu, avg_cpu = get_cpu_usage(pid, duration)
max_mem, avg_mem = get_memory_usage(pid, duration)
max_disk_io, avg_disk_io = get_disk_io(pid, duration)
max_net_io, avg_net_io = get_net_io(pid, duration)

print(f"CPU 最大值: {max_cpu}% 平均值: {avg_cpu}%")
print(f"内存 最大值: {max_mem} 平均值: {avg_mem}")
print(f"磁盘IO 最大值: {max_disk_io} 平均值: {avg_disk_io}")
print(f"网络流量 最大值: {max_net_io} 平均值: {avg_net_io}")

http://www.lryc.cn/news/189316.html

相关文章:

  • conda: error: argument COMMAND: invalid choice: ‘activate‘
  • 新鲜速递:Spring Cloud Alibaba环境在Spring Boot 3时代的快速搭建
  • 网络-网络状态网络速度
  • ACL访问控制列表的解析和配置
  • 记一次使用vue-markdown在vue中解析markdown格式文件,并自动生成目录大纲
  • 力扣每日一题35:搜索插入的位置
  • Iptabels的相关描述理解防火墙的必读文章
  • Maven 构建项目测试
  • 机器学习 - 似然函数:概念、应用与代码实例
  • LeetCode 热题 100-49. 字母异位词分组
  • TensorFlow入门(十九、softmax算法处理分类问题)
  • 刷题用到的非常有用的函数c++(持续更新)
  • 黑客技术(网络安全)——自学思路
  • lNmp安装:
  • Fisher辨别分析
  • 【Zookeeper专题】Zookeeper选举Leader源码解析
  • 机器学习之自训练协同训练
  • ubuntu 通过apt-get快速安装 docker
  • C++医院影像科PACS源码:三维重建、检查预约、胶片打印、图像处理、测量分析等
  • 企业聊天应用程序使用 Kubernetes
  • 记录用命令行将项目打包成war包
  • Linux基础知识笔记
  • Laya3.0 入门教程
  • 3D全景虚拟样板间展销系统扩展用户市场范围
  • 如何编写lua扩展库
  • Java List 中存不同的数据类型
  • pyqt5:openpyxl 读取 Excel文件,显示在 QTableWidget 中
  • 在RabbitMQ中使用新的MQTT 5.0功能
  • flinkcdc 体验
  • Kafka知识补充