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, requestId=None): path = dirname(base_dir) 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个数 cpu_disk = psutil.disk_usage(path).percent if requestId: logger.info("""############################################################################################### CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 逻辑个数:{}, 物理个数:{}, 服务磁盘使用率:{}, requestId:{} ###############################################################################################""", cpu_use, cpu_mem, cpu_swap, cpu_lj, cpu_wl, cpu_disk, requestId) else: logger.info("""############################################################################################### CPU 使用率:{}, 内存使用:{}, SWAP内存使用率:{}, 逻辑个数:{}, 物理个数:{}, 服务磁盘使用率:{} ###############################################################################################""", cpu_use, cpu_mem, cpu_swap, cpu_lj, cpu_wl, cpu_disk)