欢迎访问宙启技术站
智能推送

如何在Python中监视系统资源使用情况

发布时间:2024-01-17 12:30:25

在Python中,可以使用psutil库来监视系统资源的使用情况,包括CPU、内存、磁盘、网络等。psutil是一个跨平台的库,可以在不同的操作系统上使用。

以下是一个使用psutil库来监视系统资源使用情况的例子:

import psutil

# 获取CPU的使用情况
cpu_percent = psutil.cpu_percent(interval=1)
print("CPU使用率:", cpu_percent)

# 获取内存的使用情况
virtual_memory = psutil.virtual_memory()
print("总内存:", virtual_memory.total)
print("已使用内存:", virtual_memory.used)
print("内存使用率:", virtual_memory.percent)

# 获取磁盘的使用情况
disk_usage = psutil.disk_usage('/')
print("总磁盘空间:", disk_usage.total)
print("已使用磁盘空间:", disk_usage.used)
print("磁盘使用率:", disk_usage.percent)

# 获取网络的使用情况
network_io = psutil.net_io_counters()
print("发送的字节数:", network_io.bytes_sent)
print("接收的字节数:", network_io.bytes_recv)

# 获取进程的使用情况
pid = psutil.Process().pid
process = psutil.Process(pid)
print("进程ID:", pid)
print("进程内存使用:", process.memory_info().rss)
print("进程CPU使用(单核):", process.cpu_percent(interval=1))

# 使用psutil监视系统资源使用情况
for i in range(10):
    cpu_percent = psutil.cpu_percent(interval=1)
    virtual_memory = psutil.virtual_memory().percent
    disk_usage = psutil.disk_usage('/').percent
    network_io = psutil.net_io_counters().bytes_sent + psutil.net_io_counters().bytes_recv

    print("CPU使用率:", cpu_percent, "%")
    print("内存使用率:", virtual_memory, "%")
    print("磁盘使用率:", disk_usage, "%")
    print("网络使用:", network_io, "bytes")

通过上述代码,可以监视系统的CPU使用率、内存使用率、磁盘使用率以及网络使用情况。在使用psutil库时,可以设置interval参数来指定监视的时间间隔,默认为1秒。可以根据实际需求来调整时间间隔。

上述例子中,我们还使用psutil库获取当前进程的使用情况,包括内存使用和CPU使用。可以使用psutil.Process().pid来获取当前进程的PID,然后可以使用psutil.Process(pid)来获取该进程的详细信息。

使用psutil库来监视系统资源的使用情况可以帮助我们了解系统的负载情况,以及进程的资源使用情况,对于性能优化和故障排查都非常有帮助。