Debian 下避免 Swap 引发的内存泄漏影响
核心原则
快速缓解与配置
free -h、swapon --showvmstat 1top/htop(按 M 键),或 ps aux --sort=-%memcat /proc/sys/vm/swappinesssudo sysctl vm.swappiness=10vm.swappiness=10 后执行 sudo sysctl -psudo cgcreate -g memory:/mygroup
echo "1000M" | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes
sudo cgexec -g memory:mygroup <PID> <命令>
sudo swapoff -a 与 sudo swapon -a,或针对单个文件 sudo swapoff /swapfile && sudo swapon /swapfileswapoff -a 并在 /etc/fstab 注释 swap 行),以避免干扰调度与稳定性。定位内存泄漏
sudo sh -c 'for i in /proc/[0-9]*; do pid=${i##*/}; if [ "$pid" -gt 100 ]; then awk -v pid="$pid" "/Swap:/{a=a+\$2} END {if (a>0) print pid, a/1024 \"M\"}" /proc/"$pid"/smaps 2>/dev/null; fi; done | sort -k2nr | head -n 10'pmap -x <PID>,关注 RSS 与持续增长的匿名映射 [ anon ]valgrind --leak-check=full ./your_programslabtop -o,观察 Slab 是否持续增长sudo perf record -e kmem:kmalloc -e kmem:kfree -p <PID>,随后 perf reportstrace -p <PID> -e trace=memory 观察异常 mmap/brk 行为。长期治理与容量规划
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h、vmstat 1、smem、slabtop 等指标,设置阈值告警,尽早识别异常增长趋势。