linux 用户内存保障管理配置

1.先确认是不是内存 OOM 被杀

dmesg -T | grep -i killed

如果输出类似:Out of memory: Killed process xxx (tessent_shell)就是内存不够被系统强杀,完全符合你判断。

2.方案 1:给 zhangsan 调高 OOM 优先级(最简单、零风险)

Linux 有 oom_score_adj,数值 -1000 ~ 1000

  • 越小:越不容易被 OOM 杀掉
  • 越大:内存不够时最先被干掉

1. 给 zhangsan 用户所有进程设为最优先

编辑 /etc/security/limits.conf 不行,要用 systemd 全局默认 + 用户固定 oom 权重

临时对当前已有进程生效

找到 tessent_shell 进程 PID:

ps -ef | grep tessent_shell

假设 PID=12345

echo -500 > /proc/12345/oom_score_adj

3.永久:所有 zhangsan 登录进程默认高优先级 zhangsan的uid未1112

mkdir -p /etc/systemd/system/user@1112.service.d

cat > /etc/systemd/system/user@1112.service.d/oom-priority.conf << EOF

Service

OOMScoreAdjust=-900

EOF

systemctl daemon-reload

4.再把系统内核参数设置好(保证系统不崩)

echo "vm.oom_kill_allocating_task = 0" >> /etc/sysctl.conf

echo "vm.min_free_kbytes = 41943040" >> /etc/sysctl.conf

sysctl -p

  • zhangsan 的 tessent_shell → OOM 优先级 -900(系统最后才会杀他)
  • 其他用户 → 保持默认,内存不够优先杀他们
  • 系统永远保留 40GB 空闲内存 → 不崩溃、不卡

5.限制其他普通用户内存(把内存留给 zhangsan)

vim /etc/security/limits.conf

普通用户:最大锁定物理内存 128GB 足够日常作业

* soft memlock 134217728

* hard memlock 134217728

普通用户:单进程虚拟内存上限 512GB,防止乱起大进程吃光1T内存

* soft as 536870912

* hard as 536870912

===================== 专属给 zhangsan =====================

跑Tessent仿真:内存锁定、进程地址空间 全部无限制

zhangsan soft memlock unlimited

zhangsan hard memlock unlimited

zhangsan soft as unlimited

zhangsan hard as unlimited

相关推荐
ltl1 分钟前
Windows 内核与 Linux 的关键差异
linux
ltl13 分钟前
CentOS 停服与生态重组:Rocky、Alma、openEuler、龙蜥
linux
ltl8 小时前
eBPF 可观测性全景:bcc、bpftrace、libbpf 的工程路径
linux
2401_868534789 小时前
数仓开发落地手册
linux·运维
正在走向自律10 小时前
使用atop工具监控Linux系统指标
linux·运维·php·实时监控·atop分析内存
果果燕11 小时前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
yyy(十一月限定版)12 小时前
017【入门】最小栈
linux·运维·服务器
不负岁月无痕12 小时前
简单理解操作系统结构
java·linux·c语言·开发语言·c++·面试
2401_8949155313 小时前
GEO 源码部署如何实现精准地域分发?核心配置参数深度讲解
java·运维·服务器·后端·开源
Zguigo13 小时前
第25-26讲:计算机操作系统存储管理——分页机制、页表与快表(TLB)
linux·windows·笔记