利用Python和定时器等库,自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据
时间: 2024-05-06 18:22:09 浏览: 145
以下是使用Python编写的示例代码,可以自动定时获取CPU的负载、温度、内存占用等信息,定时间隔2秒,采集1000个样本数据:
```python
import psutil
import time
interval = 2 # 采样时间间隔
n_samples = 1000 # 采样次数
for i in range(n_samples):
cpu_percent = psutil.cpu_percent() # 获取CPU负载百分比
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current # 获取CPU温度
mem_percent = psutil.virtual_memory().percent # 获取内存占用百分比
print(f"第{i+1}次采样:CPU负载={cpu_percent}%,CPU温度={cpu_temp}℃,内存占用={mem_percent}%")
time.sleep(interval)
```
在上述代码中,我们使用了`psutil`库来获取CPU负载、温度和内存占用等信息。其中,`psutil.cpu_percent()`函数可以获取CPU负载百分比,`psutil.sensors_temperatures()`函数可以获取CPU温度,`psutil.virtual_memory()`函数可以获取内存占用信息。
我们将采样时间间隔设为2秒,采样次数设为1000次,通过循环获取CPU负载、温度和内存占用等信息,并将其打印出来。在每次循环结束后,程序会暂停2秒钟,以便下一次采样。
如果需要将采样数据保存下来,可以将每次采样的结果存入一个列表中,最后将结果写入文件或数据库中。例如:
```python
import psutil
import time
import csv
interval = 2 # 采样时间间隔
n_samples = 1000 # 采样次数
data = [] # 存储采样数据的列表
for i in range(n_samples):
cpu_percent = psutil.cpu_percent() # 获取CPU负载百分比
cpu_temp = psutil.sensors_temperatures().get('coretemp')[0].current # 获取CPU温度
mem_percent = psutil.virtual_memory().percent # 获取内存占用百分比
data.append([i+1, cpu_percent, cpu_temp, mem_percent]) # 将采样数据存入列表
print(f"第{i+1}次采样:CPU负载={cpu_percent}%,CPU温度={cpu_temp}℃,内存占用={mem_percent}%")
time.sleep(interval)
# 将采样数据写入CSV文件
with open('cpu_data.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['序号', 'CPU负载(%)', 'CPU温度(℃)', '内存占用(%)'])
writer.writerows(data)
```
在上述代码中,我们定义了一个`data`列表,用于存储采样数据。在每次采样结束后,将采样数据存入`data`列表中。最后,将`data`列表中的数据写入CSV文件中,以便后续处理和分析。
阅读全文