前言
对于一个job级别应用再进行测试的过程中,不可避免测试该服务的一些性能,比如占有cpu的使用量,使用的memory的大小等,比较简单的方式是在服务中起一个并行的线程,每隔一段时间打印这些关注量的大小,之后把打印出的这些值按照时间顺序排序,画图看一下规律
这里计算这些量python中有个库就是psutil
psutil
安装
pip install即可
pip install psutil
doc:https://psutil.readthedocs.io/en/latest/#
常用方法介绍
1. cpu_percent
doc:https://psutil.readthedocs.io/en/latest/#psutil.cpu_percent
cpu的使用率,返回是0-100的数字,单位是%
interval:秒数 percpu:True/False True为每个cpu, False为总cpu
这里要特别注意interval为0的时候,第一次调用返回0
print(psutil.cpu_percent(interval=30))
print(psutil.cpu_percent(interval=10, percpu=True))
结果:
8.3
[31.2, 0.8, 27.0, 0.7, 22.2, 0.8, 18.9, 0.8, 16.8, 0.8, 13.5, 0.9]
这里显示有12个cpu,如果是mac的话执行
sysctl machdep.cpu
可以看到cpu的各项信息
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
core_count: 物理cpu的核数
thread_count: 逻辑cpu的数量
psutil.cpu_count
print(psutil.cpu_count(logical=False)) #6
print(psutil.cpu_count(logical=True)) #12
默认logical为True,返回逻辑cpu数,如果为False则返回物理核数
官网写的更明确:
Return the number of logical CPUs in the system (same as os.cpu_count in Python 3.4). “logical CPUs” means the number of physical cores multiplied by the number of threads that can run on each core (this is known as Hyper Threading). If logical is False return the number of physical cores only.
3. psutil.virtual_memory
返回很多个值
s = psutil.virtual_memory()
print(s)
这个命令类似于linux中的free命令:https://blog.csdn.net/lijinzhou2017/article/details/103008827
total 系统总的可用物理内存大小
available 还可以被 应用程序 使用的物理内存大小
used 已被使用的物理内存大小
free 还有多少物理内存可用
percent (total-available)/total
单位都是byte, 所以显示的时候如果想显示是G需要除以 units = 1024✖️1024✖️1024
如果只是想知道在跨平台方式下还剩下多少物理内存,只需依赖available和percent
reference
https://www.cnblogs.com/feibazhf/p/12858792.html
推荐阅读:
我的2022届互联网校招分享
我的2021总结
浅谈算法岗和开发岗的区别
互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!
公众号:AI蜗牛车
保持谦逊、保持自律、保持进步
发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记
发送【AI四大名著】获取四本经典AI电子书