开发者
大数据场景-用户资源限制配置步骤

大数据场景-用户资源限制配置步骤

大数据

发表于 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,观察到上限值未突破限制值,资源上限限制成功。