Pixel Language Portal 系统资源监控面板开发Python实现类任务管理器功能1. 引言为什么需要轻量级系统监控工具在日常服务器运维工作中系统资源监控是必不可少的一环。想象一下这样的场景你的服务器突然响应变慢C盘空间告急但你却不知道具体是哪个进程占用了资源。这时候一个轻量级的系统监控工具就能派上大用场。传统的任务管理器功能有限而专业监控系统又过于笨重。本文将介绍如何使用Python开发一个类似任务管理器的系统资源监控面板能够实时监控CPU、内存、磁盘IO和网络流量等关键指标并通过终端或Web界面直观展示数据。2. 核心监控指标与实现思路2.1 需要监控的关键系统指标一个完善的系统监控工具应该关注以下几个核心指标CPU使用率监控整体和各核心的负载情况内存使用包括物理内存和虚拟内存的使用情况磁盘活动特别是C盘空间使用率和IO读写速度网络流量监控上传下载速度和连接状态2.2 技术选型与实现方案我们将使用Python的几个强大库来实现这些功能psutil跨平台系统信息库可以轻松获取系统资源使用情况rich终端美化库用于在命令行界面创建漂亮的监控面板socket用于获取网络相关信息fastapi可选如果需要Web界面可以用它快速搭建API3. 基础监控功能实现3.1 安装必要的Python库首先确保安装了所需的库pip install psutil rich如果需要Web界面可以额外安装pip install fastapi uvicorn3.2 CPU和内存监控实现让我们从最基础的CPU和内存监控开始import psutil import time def get_system_stats(): # 获取CPU使用率 cpu_percent psutil.cpu_percent(interval1) # 获取内存信息 mem psutil.virtual_memory() return { cpu: cpu_percent, memory: { total: mem.total, available: mem.available, used: mem.used, percent: mem.percent } } while True: stats get_system_stats() print(fCPU使用率: {stats[cpu]}%) print(f内存使用: {stats[memory][percent]}%) time.sleep(2)3.3 磁盘监控实现针对C盘满了怎么清理这个常见问题我们可以特别关注磁盘空间def get_disk_info(): partitions psutil.disk_partitions() disk_info {} for partition in partitions: if C: in partition.mountpoint: usage psutil.disk_usage(partition.mountpoint) disk_info[partition.mountpoint] { total: usage.total, used: usage.used, free: usage.free, percent: usage.percent } return disk_info disk_stats get_disk_info() for drive, stats in disk_stats.items(): print(f{drive} 使用情况: {stats[percent]}% (已用 {stats[used]/1024/1024/1024:.2f}GB))4. 高级功能实现4.1 网络流量监控网络监控可以帮助我们了解服务器的通信状况def get_network_info(): net_io psutil.net_io_counters() return { bytes_sent: net_io.bytes_sent, bytes_recv: net_io.bytes_recv, packets_sent: net_io.packets_sent, packets_recv: net_io.packets_recv } # 获取两次网络数据计算流量 net1 get_network_info() time.sleep(1) net2 get_network_info() upload_speed (net2[bytes_sent] - net1[bytes_sent]) / 1024 # KB/s download_speed (net2[bytes_recv] - net1[bytes_recv]) / 1024 # KB/s print(f上传速度: {upload_speed:.2f} KB/s) print(f下载速度: {download_speed:.2f} KB/s)4.2 使用Rich库创建终端监控面板Rich库可以让我们的监控面板更加美观from rich.console import Console from rich.table import Table from rich.live import Live import psutil def generate_monitor_table(): table Table(title系统资源监控面板) table.add_column(指标) table.add_column(当前值) table.add_column(状态) # CPU信息 cpu_percent psutil.cpu_percent() table.add_row(CPU使用率, f{cpu_percent}%, [red]警告 if cpu_percent 80 else [green]正常) # 内存信息 mem psutil.virtual_memory() table.add_row(内存使用, f{mem.percent}%, [red]警告 if mem.percent 80 else [green]正常) # 磁盘信息 disk psutil.disk_usage(C:) table.add_row(C盘空间, f{disk.percent}%, [red]警告 if disk.percent 85 else [green]正常) return table console Console() with Live(consoleconsole, refresh_per_second4) as live: while True: live.update(generate_monitor_table()) time.sleep(0.25)5. 实际应用与扩展5.1 针对C盘空间不足的解决方案当监控到C盘空间不足时我们可以扩展功能自动找出大文件import os def find_large_files(directory, size_threshold100): 查找大于指定大小(MB)的文件 large_files [] for root, dirs, files in os.walk(directory): for file in files: file_path os.path.join(root, file) try: file_size os.path.getsize(file_path) / 1024 / 1024 # MB if file_size size_threshold: large_files.append((file_path, file_size)) except: continue return sorted(large_files, keylambda x: x[1], reverseTrue) # 查找C盘中大于100MB的文件 large_files find_large_files(C:\\) for file, size in large_files[:10]: # 显示前10个大文件 print(f{file} - {size:.2f} MB)5.2 Web监控面板实现可选如果需要远程监控可以使用FastAPI创建简单的Web界面from fastapi import FastAPI from fastapi.responses import HTMLResponse import psutil app FastAPI() def get_system_html(): cpu psutil.cpu_percent() mem psutil.virtual_memory() disk psutil.disk_usage(C:) return f html body h1系统监控面板/h1 pCPU使用率: {cpu}%/p p内存使用: {mem.percent}%/p pC盘空间: {disk.percent}%/p /body /html app.get(/, response_classHTMLResponse) async def monitor(): return get_system_html()启动服务后访问http://localhost:8000即可查看监控数据。6. 总结通过这个项目我们实现了一个轻量级的系统资源监控工具能够实时监控CPU、内存、磁盘和网络等关键指标。相比Windows自带的任务管理器我们的工具更加灵活可以根据需要扩展功能比如针对C盘满了怎么清理这样的常见问题提供解决方案。实际使用中你可以根据自己的需求调整监控频率、添加更多指标或者改进可视化效果。这个工具特别适合服务器运维人员使用可以帮助快速定位系统资源瓶颈及时发现问题并解决。整体开发下来Python的psutil库确实非常强大配合rich库可以轻松创建漂亮的终端界面。如果你需要更复杂的功能还可以考虑添加告警机制、历史数据存储和分析等功能让这个监控工具更加完善。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。