78 lines
4.3 KiB
Python
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) |