专栏名称: 运维
关注互联网运维技术,分享知识
目录
今天看啥  ›  专栏  ›  运维

K8s里我的容器到底用了多少内存?

运维  · 公众号  · 运维  · 2025-01-21 12:28
    

主要观点总结

文章讨论了Linux下的内存使用监控,包括top、free命令在物理机或虚拟机环境下的使用,以及容器化应用在K8s中的内存监控。介绍了Linux进程地址空间的分布,内存分配原理,以及K8s中cadvisor的内存监控指标。还讨论了进程的RSS、PageCache、shared memory和mmap文件映射,以及tmpfs和System V IPC共享内存。最后,文章提供了一些监控实践,包括程序自监控内存用量的小技巧,以及容器内存使用量的告警配置。

关键观点总结

关键观点1: Linux内存监控工具

Linux提供了top和free命令用于查看机器和进程的内存使用情况,而在容器环境中,可以使用cadvisor进行监控。

关键观点2: Linux进程地址空间分布

Linux进程地址空间由不同的vm_area_struct(vma)组成,每个vma都有其地址区间,包括堆、栈、共享库等区域。

关键观点3: K8s中的cadvisor监控指标

cadvisor提供了多个内存监控指标,如container_memory_rss、container_memory_cache、container_memory_mapped_file等,这些指标分别代表了容器的不同内存使用情况。

关键观点4: 内存分配与监控实践

Linux的内存分配与监控涉及到malloc、mmap、共享内存等概念,而在容器环境中,需要关注Pod和Container级的memcg内存限制。

关键观点5: 监控实践中的注意事项

使用getrusage系统调用可以自监控进程的资源使用情况,同时需要注意Pod的QoS级别和容器间的Pid Namespace共享。


免责声明

免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
推荐产品:   推荐产品
文章地址: 访问文章快照