在CentOS系統上監控Python性能有多種方法,以下是一些推薦的工具和方法:
PyMonitor:
pip install pymonitor-metrics
from 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 psutil
import 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-spy
import time
import py_spy
if __name__ == "__main__":
py_spy.record --idle --threads time.sleep(1)
dstat:
vmstat
、iostat
、netstat
和ifstat
等命令。pip install dstat
dstat -ta 1
Glances:
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應用的性能和資源使用情況。根據具體需求選擇合適的工具進行使用。