大数据场景-用户资源限制配置步骤
发表于 2026/04/24
0
作者 | 张聪
背景介绍:大数据场景通常有多用户执行任务,Yarn通常会根据任务队列限制整机使用资源,可以采用cgroup来限制用户资源使用情况。
操作系统:openEuler24.03-SP2/22.03-SP3均验证过
测试记录
# 1. 建立新组 test
sudo groupadd test # 2. 建立新用户 hadoop,同时把主组设为 test(-g 指定主组)
sudo useradd -m -g test hadoop # -m 自动创建 /home/hadoop 家目录。
# 3.新用户设置登录密码
sudo passwd hadoop # 4. 查看用户id并记录 下面所有1001均为查询到的UID id -u hadoop
# 5. 安装so文件
yum install systemd-pam # 6. 修改配置文件
vi /etc/pam.d/sshd #在第15行 session optional pam_motd.so下面插入一行,保存并退出 session required pam_systemd.so
#7. 增加配置文件,等效于set-property
# systemctl set-property user-1001.slice CPUQuota=3000% MemoryMax=100G
cd /etc/systemd/
mkdir system.control
cd system.control
mkdir user-1001.slice.d
cd user-1001.slice.d/
touch CPUQuota.conf #在该文件中添加下面两行,3000%表示限制该用户最多使用30个CPU核心
[Slice] CPUQuota=3000%
touch MemoryMax.conf #在该文件中添加下面两行,限制该用户使用内存最多为100G
[Slice] MemoryMax=100G #8. 更新配置 systemctl daemon-reload
#9. 启动该slice服务- 需要确保ssh已登录
systemctl start user-1001.slice #10. 查看该服务状态- Active:active 启动成功
systemctl status user-1001.slice #重点关注该配置文件是否被加载
Drop-In: /usr/lib/systemd/system/user-.slice.d
└─10-defaults.conf
/etc/systemd/system.control/user-1001.slice.d
└─CPUQuota.conf, MemoryMax.conf #登录验证
#su方式限制不住资源
su - hadoop #在 cgroup v1 环境里,只有 ssh 登录才会触发 cgred 把进程放进用户级限额组;
ssh hadoop@xxx.xx.xx.xx #启动应用程序demo,观察到上限值未突破限制值,资源上限限制成功。


