Linux性能优化之(3)如何快速找出系统内存的问题

内存的性能指标:

 

 

 

如何迅速定位内存问题:

  1. 先用free和top,查看系统整体的内存使用情况
  2. 再用vmstat和pidstat,查看一段时间的趋势,从而判断出内存问题的类型
  3. 最后进行详细分析,比如内存分配分析、缓存/缓冲区分析、具体进程的内存使用分析等

分析过程,画成了如下的流程图:

 

如何优化?:

内存调优最重要的就是,保证应用程序的热点数据放在内存中,并尽量减少换页和交换

  1. 最好禁用swap。如果必须开启swap,降低swappniess的值,减少内存回收时Swap的使用倾向
  2. 减少内存的动态分配。比如,可以使用内存池、大页等
  3. 尽量使用缓存和缓冲区来访问数据。比如,可以使用堆栈明确申明内存空间,来存储需要的缓存的数据;或者使用redis这类的外部缓存组件,优化数据的访问
  4. 使用 cgroups等方式限制进程的内存使用情况。这样,可以确保系统内存不会被异常进程耗尽
  5. 通过/proc/pid/oom_adj,调整核心应用的oom_score。这样,可以保证即使内存紧张,核心应用也不会被OOM杀死
posted @ 2020-09-29 15:21  故地重游2020  阅读(179)  评论(0编辑  收藏  举报