一种 linux 内存缓慢增长问题的追踪方法

linux 内存缓慢增长问题

在遇到 内存、cpu 等系统资源 缓慢增长问题,又不能确认是哪个进程造成的时候,可以使用类似的脚本进行数据采样,然后通过对格式化数据分析找到 具体的服务(进程)。

监控脚本

    #!/bin/bash

    # 需手工将此脚本添加到 cronjob 中
    # */1 * * * * bash /data/data_tmp/monitor.sh

    now=`date +%Y%m%d`
    /usr/bin/top -c -b -n 1 | sort -nr -k10 | head -n 20 | tee >>/data/data_tmp/top_$now.txt

    tow_days_ago=`date +%Y%m%d -d "5 day ago"`
    if [ -f /data/data_tmp/top_${tow_days_ago}.txt ];then
    rm -f /data/data_tmp/top_${tow_days_ago}.txt
    fi

分析数据

    # 按进程名分组写入不同的文件
    cat tmp.txt | grep -v % | grep -v KiB | grep -v Tasks | sort -r -k12 -k11 | awk '{print $0 >> $12".rlog"}'

你可能感兴趣的:(一种 linux 内存缓慢增长问题的追踪方法)