tuoheng_algN/vodsdk/util/CpuUtils.py

78 lines
4.3 KiB
Python

from os.path import dirname
from traceback import format_exc
import psutil
from loguru import logger
from enums.ExceptionEnum import ExceptionType
from exception.CustomerException import ServiceException
def check_cpu(base_dir, requestId=None):
path = dirname(base_dir)
cpu_use = psutil.cpu_percent()
cpu_mem = psutil.virtual_memory().percent
cpu_swap = psutil.swap_memory().percent
cpu_disk = psutil.disk_usage(path).percent
if float(cpu_use) > 70 or float(cpu_mem) > 70 or cpu_swap > 85 or cpu_disk > 90:
if requestId:
logger.info("""###############################################################################################
CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 服务磁盘使用率:{}, requestId:{}
###############################################################################################""",
cpu_use, cpu_mem, cpu_swap, cpu_disk, requestId)
else:
logger.info("""###############################################################################################
CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 服务磁盘使用率:{}
###############################################################################################""",
cpu_use, cpu_mem, cpu_swap, cpu_disk)
raise ServiceException(ExceptionType.NO_RESOURCES.value[0],
ExceptionType.NO_RESOURCES.value[1])
def print_cpu_ex_status(base_dir, requestId=None):
result = False
try:
path = dirname(base_dir)
cpu_use = psutil.cpu_percent()
cpu_mem = psutil.virtual_memory().percent
cpu_swap = psutil.swap_memory().percent
cpu_disk = psutil.disk_usage(path).percent
if float(cpu_use) > 70 or float(cpu_mem) > 70 or cpu_swap > 85 or cpu_disk > 90:
result = True
if requestId:
logger.info("""###############################################################################################
CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 服务磁盘使用率:{}, requestId:{}
###############################################################################################""",
cpu_use, cpu_mem, cpu_swap, cpu_disk, requestId)
else:
logger.info("""###############################################################################################
CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 服务磁盘使用率:{}
###############################################################################################""",
cpu_use, cpu_mem, cpu_swap, cpu_disk)
except Exception:
logger.error("打印cpu状态异常: {}", format_exc())
return result
def print_cpu_status(base_dir=None, requestId=None,lineNum=None):
if base_dir:
path = dirname(base_dir)
if not lineNum: lineNum='未定义'
cpu_use = psutil.cpu_percent()
cpu_mem = psutil.virtual_memory().percent
cpu_swap = psutil.swap_memory().percent
cpu_lj = psutil.cpu_count() # 逻辑cpu个数
cpu_wl = psutil.cpu_count(logical=False) # 物理cpu个数
if base_dir:
cpu_disk = psutil.disk_usage(path).percent
else: cpu_disk="未统计"
if requestId:
logger.info("""############################################################################################
行号:{} CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 逻辑个数:{}, 物理个数:{}, 服务磁盘使用率:{}, requestId:{}
###############################################################################################""", lineNum,cpu_use,
cpu_mem, cpu_swap, cpu_lj, cpu_wl, cpu_disk, requestId)
else:
logger.info("""###############################################################################################
行号:{} CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 逻辑个数:{}, 物理个数:{}, 服务磁盘使用率:{}
###############################################################################################""",lineNum ,cpu_use,
cpu_mem, cpu_swap, cpu_lj, cpu_wl, cpu_disk)