在CentOS系统上监控Python性能有多种方法,以下是一些推荐的工具和方法:
PyMonitor:
pip install pymonitor-metricsfrom pymonitor import Monitor, Metrics
monitor = Monitor(interval=5, metrics=['cpu', 'memory', 'disk', 'network'])
@monitor.collect
def collect_metrics():
return {
'cpu_usage': Metrics.get_cpu_usage(),
'memory_used': Metrics.get_memory_usage(),
'disk_io': Metrics.get_disk_io()
}
monitor.start()
Psutil:
pip install psutilimport psutil
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU使用率: {cpu_percent}%")
memory_info = psutil.virtual_memory()
print(f"总内存: {memory_info.total / (1024 ** 3):.2f} GB")
print(f"已使用内存: {memory_info.used / (1024 ** 3):.2f} GB")
print(f"可用内存: {memory_info.available / (1024 ** 3):.2f} GB")
disk_usage = psutil.disk_usage('/')
print(f"总空间: {disk_usage.total / (1024 ** 3):.2f} GB")
print(f"已用空间: {disk_usage.used / (1024 ** 3):.2f} GB")
print(f"可用空间: {disk_usage.free / (1024 ** 3):.2f} GB")
network_stats = psutil.net_io_counters()
print(f"发送字节数: {network_stats.bytes_sent / (1024 ** 2):.2f} MB")
print(f"接收字节数: {network_stats.bytes_recv / (1024 ** 2):.2f} MB")
Prometheus和Grafana:
prometheus_client库暴露指标。from prometheus_client import start_http_server, Counter
start_http_server(5000)
requests_counter = Counter('requests_total', 'Total HTTP requests')
def handle_request():
requests_counter.inc()
return "Hello, Prometheus!"
py-spy:
pip install py-spyimport time
import py_spy
if __name__ == "__main__":
py_spy.record --idle --threads time.sleep(1)
dstat:
vmstat、iostat、netstat和ifstat等命令。pip install dstatdstat -ta 1Glances:
yum install -y glances。glances 即可启动监控。nmon:
nmon_analyser工具产生数据文件与图形化结果。wget http://nmon.sourceforge.net/nmon16e_mpginc.tar.gz
tar -zxvf nmon16e_mpginc.tar.gz
cp nmon_x86_64_centos /usr/local/bin/nmon
chmod 777 nmon
./nmon -c -t -r 30 -s 10这些工具和方法可以帮助你在CentOS系统中有效地监控Python应用的性能和资源使用情况。根据具体需求选择合适的工具进行使用。