【问题标题】:Limit the memory and cpu available for a user in Linux在 Linux 中限制用户可用的内存和 CPU
【发布时间】:2010-10-01 01:08:36
【问题描述】:

我有点担心我可以在共享机器中使用的资源量。有什么方法可以测试管理员对我可以使用的资源数量是否有限制?如果是这样,为了提出一个更完整的问题,我该如何设置这样的限制?

【问题讨论】:

    标签: linux memory-management cpu-usage pam


    【解决方案1】:

    对于进程相关的限制,您可以查看/etc/security/limits.conf(阅读文件中的 cmets,使用 google 或使用 man limits.conf 了解更多信息)。正如 jpalecek 指出的那样,您可以使用 ulimit -a 查看(并可能修改)当前有效的所有此类限制。

    您可以使用命令quota 来查看磁盘配额是否生效。

    【讨论】:

    • 所有输入都有注释,是不是没有限制?
    • 最有可能,至少在 CPU 和内存使用方面。对于磁盘使用情况,我认为您需要使用配额命令进行检查
    【解决方案2】:

    你可以试试跑

    ulimit -a
    

    查看有效的资源限制。此外,如果允许您更改此类限制,您可以通过ulimit 命令更改它们,例如。

    ulimit -c unlimited
    

    取消对进程可以创建的核心文件大小的任何限制。

    【讨论】:

    • 我意识到这个问题已有 3 年历史,但手册页将此程序列为已过时(说使用 getrlimit 代替)
    • ulimit() C 库函数是(见ulimit(3)),内置shell 不是(见bash(1))。
    【解决方案3】:

    在C层,相关函数(实际上是syscalls(2)...)可以是setrlimit(2)setpriority(2)sched_setattr(2)。您可能希望从您的 shell 中调用它们。

    另请参阅proc(5) - 并尝试cat /proc/self/limitssched(7)

    您可能想要使用renice(1) 命令。

    如果您运行不需要用户交互的长时间程序(几个小时),您可以考虑使用一些batch processing。一些 Linux 系统有一个batch or at command

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-20
      • 2016-12-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多