import psutil import time import os import logging from configparser import ConfigParser # 配置日志记录 logging.basicConfig(filename='system_monitor.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # 加载配置文件 config = ConfigParser() config.read('monitor_config.ini') if not config.has_section('Monitoring'): config.add_section('Monitoring') config.set('Monitoring', 'cpu_usage_threshold', '80') config.set('Monitoring', 'high_load_threshold', '50') config.set('Monitoring', 'sleep_interval', '5') config.set('Monitoring', 'nice_value', '-10') config.set('Monitoring', 'cpu_core', '0') with open('monitor_config.ini', 'w') as configfile: config.write(configfile) CPU_USAGE_THRESHOLD = int(config.get('Monitoring', 'cpu_usage_threshold')) HIGH_LOAD_THRESHOLD = int(config.get('Monitoring', 'high_load_threshold')) SLEEP_INTERVAL = int(config.get('Monitoring', 'sleep_interval')) NICE_VALUE = int(config.get('Monitoring', 'nice_value')) CPU_CORE = [int(core.strip()) for core in config.get('Monitoring', 'cpu_core').split(',')] def check_cpu_usage(threshold=CPU_USAGE_THRESHOLD): """实时检测CPU使用率""" usage = psutil.cpu_percent(interval=1) if usage > threshold: logging.warning(f"警报:CPU使用率超过阈值!当前使用率:{usage}%") return True return False def get_high_load_processes(threshold=HIGH_LOAD_THRESHOLD): """获取CPU占用率过高的进程列表""" processes = [] for proc in psutil.process_iter(['pid', 'name', 'cpu_percent']): try: if proc.info['cpu_percent'] > threshold: processes.append(proc.info) except (psutil.NoSuchProcess, psutil.AccessDenied): continue return sorted(processes, key=lambda x: x['cpu_percent'], reverse=True) def set_cpu_affinity(pid, cores=CPU_CORE): """设置进程的CPU亲和性(绑定到指定核心)""" try: p = psutil.Process(pid) p.cpu_affinity(cores) logging.info(f"进程 {pid} 已绑定到CPU核心 {cores}") except Excep
时间: 2025-07-12 14:46:00 浏览: 2
<think>好的,我现在需要帮助用户解决如何使用Python的psutil库进行系统资源监控和处理高CPU使用率进程的问题。首先,我应该回忆一下psutil库的基本功能和常用方法。根据提供的引用内容,psutil可以监控CPU、内存、磁盘、网络等信息,还能管理进程。
用户的问题分为两部分:资源监控和处理高CPU进程。我需要分步骤回答。首先,系统资源监控部分,可能需要介绍如何获取CPU、内存、磁盘和网络的使用情况。然后,处理高CPU进程需要找到这些进程并采取行动,比如终止或记录。
接下来,我需要确保回答符合用户的要求,包括结构清晰,使用正确的LaTeX格式,生成相关问题,并正确引用提供的参考资料。例如,引用中提到psutil.cpu_percent()、psutil.virtual_memory()等函数,这些都需要在回答中提及,并在末尾添加引用标记。
另外,用户提到要处理高CPU使用率的进程。这里可能需要使用psutil.process_iter()来遍历所有进程,检查每个进程的CPU百分比,然后根据情况处理。需要注意的是,终止进程可能需要管理员权限,这点应该提醒用户。
在代码示例方面,需要展示如何监控资源,并如何识别高CPU进程。同时,要处理可能的异常,比如权限问题或进程不存在的情况。例如,在终止进程时使用try-except块。
生成的相关问题应该围绕psutil的其他功能、优化监控的方法、跨平台兼容性等,这些能帮助用户进一步探索。
最后,确保所有数学表达式或公式使用正确的LaTeX格式,如独立公式用$$...$$。不过在这个问题中可能涉及较少数学内容,但如果有,比如性能公式,需要正确应用格式。
总结步骤:
1. 系统资源监控:CPU、内存、磁盘、网络的使用情况获取方法,引用对应的函数和参考资料。
2. 高CPU进程处理:遍历进程,筛选高使用率的进程,提供终止或报警的代码示例。
3. 注意事项:权限、异常处理。
4. 生成相关问题,引导深入学习。</think>### 系统资源监控与高CPU进程处理
#### 一、系统资源监控实现
1. **CPU使用率监控**
使用$psutil.cpu\_percent(interval=1)$获取全局CPU利用率,默认采样间隔1秒[^4]。例如:
```python
import psutil
cpu_usage = psutil.cpu_percent(interval=1)
print(f"当前CPU使用率: {cpu_usage}%")
```
2. **内存使用情况**
通过$psutil.virtual\_memory()$获取内存总量、已用内存、空闲内存等指标[^3]:
```python
mem = psutil.virtual_memory()
print(f"内存总量: {mem.total // 1024**2}MB, 已用: {mem.used // 1024**2}MB")
`
阅读全文
相关推荐



















