在 Istio 环境中,istio-proxy
是 Envoy 的边车代理容器。通过运行命令 curl localhost:15000/memory
,或者curl localhost:15000/stats 可以查询 Envoy 的内存统计信息。以下是典型返回结果的结构和意义:
返回结果单位是bytes,需/1024/1024转为Mb。
curl localhost:15000/memory或curl localhost:15000/stats返回结果:
{"allocated": 10392960,"heap_size": 16777216,"pageheap_unmapped": 0,"pageheap_free": 0,"total_thread_cache": 4120,"total_system": 18481152,"unused_heap": 6384256
}
字段解释:
allocated
:Envoy 当前分配的内存大小(单位:字节)。heap_size
:当前进程堆内存大小(单位:字节)。pageheap_unmapped
:未映射的内存页面(单位:字节),通常是分配后又释放的内存。pageheap_free
:空闲内存页面(单位:字节),但仍可供分配。total_thread_cache
:线程缓存分配的内存总量(单位:字节)。total_system
:进程总内存使用量(单位:字节),包括堆内存和线程缓存。unused_heap
:未使用的堆内存(单位:字节)。
结果用途
- 内存调优:帮助排查 Envoy 内存使用问题,优化性能。
- 监控:与其他内存统计指标结合,监控 Istio 环境的资源使用情况。
- 问题诊断:定位 Envoy 是否因内存不足而导致 OOM(Out of Memory)。