使用free -h命令查看内存总体使用情况,重点关注**available**字段(表示系统可用内存,包括缓存和缓冲区的可回收部分)。若available内存持续下降,说明可能存在内存泄漏或进程过度占用。
top或htop(需安装:sudo yum install htop)命令,按**M**键按内存使用率排序,找出RES(实际物理内存占用)或%MEM(内存占比)高的进程。ps aux --sort=-%mem命令,以表格形式列出进程内存占用,便于批量分析。pmap -x <PID>命令查看可疑进程的内存映射,重点关注RSS(实际使用的物理内存)和Anonymous(匿名内存,如堆、栈)部分,判断是否有异常增长。jmap -heap <PID>查看堆内存使用情况;用jstat -gcutil <PID>监控垃圾回收状态,判断是否因GC失效导致内存堆积。systemctl list-unit-files --state=enabled查看已启用的服务,停止并禁用不需要的服务(如firewalld、NetworkManager等):sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
kill -9 <PID>终止可疑进程(需确认进程无关键作用,避免误杀系统进程)。/etc/sysctl.conf文件,添加或修改vm.swappiness=10(值越小,系统越倾向于使用物理内存而非Swap),然后执行sudo sysctl -p使设置生效。减少Swap使用可提升系统性能。vm.overcommit_memory=2(严格模式,防止内核过度分配内存),避免因内存超额申请导致OOM(内存溢出)。ulimit -v <值>限制进程的虚拟内存使用(如ulimit -v 500000限制为500MB),或用cgroups(如systemd-run --scope -p MemoryMax=500M your_command)限制进程组的内存使用,防止单个进程耗尽系统内存。available内存长期低于10%),且无法通过优化解决,建议升级服务器硬件,增加物理内存(如从8GB增至16GB)。sudo fallocate -l 2G /swapfile # 创建2GB Swap文件
sudo chmod 600 /swapfile # 设置权限
sudo mkswap /swapfile # 格式化为Swap
sudo swapon /swapfile # 启用Swap
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab # 持久化配置
echo 1 > /proc/sys/vm/drop_caches命令清理页缓存(不会影响正在运行的进程),释放部分内存。注意:此操作仅用于临时缓解,频繁清理会影响系统性能(系统会自动重新填充缓存)。Prometheus+Grafana搭建内存监控系统,实时查看内存使用趋势;或用Zabbix、Nagios等工具设置内存阈值告警(如available内存低于20%时触发告警)。sudo yum update),修复已知的内存泄漏漏洞(尽管CentOS Stream 8已终止维护,但仍可通过第三方仓库获取安全更新)。/var/log/messages、/var/log/syslog和应用日志,查找内存泄漏的线索(如频繁的Out of memory错误、进程内存持续增长记录)。