mirams Asked: 2023-06-01 19:48:19 +0800 CST2023-06-01 19:48:19 +0800 CST 2023-06-01 19:48:19 +0800 CST 我如何自动“好”特定用户的工作? 772 如果我的服务器用户经常忘记在 Web 服务器上为他们的工作使用“nice”命令,是否可以更改设置以使他们启动的所有内容的默认优先级略高于零? nice 3 个回答 Voted Best Answer White Owl 2023-06-01T20:14:11+08:002023-06-01T20:14:11+08:00 它可以在文件中完成/etc/security/limits.conf。 假设您的用户是一个组的成员users,您可以添加这样一行: @users soft nice 5 Marcus Müller 2023-06-01T20:15:11+08:002023-06-01T20:15:11+08:00 这听起来很不错nice,而且 nice-ness 并不是您真正想要的工具——cgroups 才是!(并且依赖于用户nice自己是一个架构错误;)正如您在实践中注意到的那样!) 您可以在 Linux 中为用户、服务和一般“切片”分配配额——就像当 CPU 争用很高时可以使用 nice-ness 降低某些进程的优先级一样,但范围更广——也适用于 I /O 带宽、RAM、进程数和其他一些东西。 相当简单:假设您要限制 uid 为 1234 的用户(当前登录,以便他们的切片存在)获得 nginx HTTP 服务的 ¼ CPU 时间: systemctl set-property user-1234.slice CPUShares=500 MemoryHigh=16G systemctl set-property nginx.service CPUShares=2000 MemoryHigh=28G (这些更改是永久性的) 如果要限制所有登录用户的总和,请使用user.slice。 如果您想先验地限制特定用户,请制作一个 /lib/systemd/system/user-1234.slice [Unit] Description=Goddammit stop hogging my server, Carl Documentation=man:systemd.special(7) Before=slices.target CPUShares=500 MemoryHigh=2G [Slice] Slice=user-slice [Install] WantedBy=multi-user.target symcbean 2023-06-02T05:11:01+08:002023-06-02T05:11:01+08:00 如果我的服务器用户经常忘记在 Web 服务器上为他们的工作使用“nice”命令 听起来你做错了/这是 XY 问题。为什么技术上天真的“用户”可以通过 shell 访问服务器角色中的主机?你为什么允许其他进程在这个盒子上运行?为什么这些进程需要比操作系统想要给它们更多的 CPU 时间?
它可以在文件中完成
/etc/security/limits.conf
。假设您的用户是一个组的成员
users
,您可以添加这样一行:这听起来很不错
nice
,而且 nice-ness 并不是您真正想要的工具——cgroups 才是!(并且依赖于用户nice
自己是一个架构错误;)正如您在实践中注意到的那样!)您可以在 Linux 中为用户、服务和一般“切片”分配配额——就像当 CPU 争用很高时可以使用 nice-ness 降低某些进程的优先级一样,但范围更广——也适用于 I /O 带宽、RAM、进程数和其他一些东西。
相当简单:假设您要限制 uid 为 1234 的用户(当前登录,以便他们的切片存在)获得 nginx HTTP 服务的 ¼ CPU 时间:
(这些更改是永久性的)
如果要限制所有登录用户的总和,请使用
user.slice
。如果您想先验地限制特定用户,请制作一个 /lib/systemd/system/user-1234.slice
听起来你做错了/这是 XY 问题。为什么技术上天真的“用户”可以通过 shell 访问服务器角色中的主机?你为什么允许其他进程在这个盒子上运行?为什么这些进程需要比操作系统想要给它们更多的 CPU 时间?