限制用户可用的系统资源

限制用户可用的系统资源

我们希望每隔几个月为用户分配一定数量的 CPU 时间和 RAM 小时。这是在 Linux 服务器上。我认为它process accounting可以帮助跟踪使用情况,但它不会强制执行使用策略。强制执行使用策略的好方法是什么?我们想要的是类似于银行账户的东西,用户可以从中提取 CPU 时间和内存小时。

如果我理解正确的话,ulimit 会限制每个 shell 实例的不同资源,因此似乎不够充分。如果我对 ulimit 的理解有误,请您纠正,我将不胜感激。我怀疑我错了。

答案1

查看 cgroups

http://en.wikipedia.org/wiki/Cgroups

cgroups(控制组)是 Linux 内核的一项功能,用于限制、计算和隔离进程组的资源使用情况(CPU、内存、磁盘 I/O 等)。

RedHat 的演示

http://www.youtube.com/watch?v=KX5QV4LId_c

答案2

pam_限制是您可以尝试的一个选项。选项设置并记录在 /etc/security/limit.conf 中,您可以根据用户将其设置为最低:

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - an user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

相关内容