ulimit

user limit, 限制 shell 用户启动进程所占用的资源。

  1. ulimit -a , 显示目前资源限制的设定;
  2. ulimit -u , 用户最多可开启的程序数目;

ulimit -a :

  1. core file size (blocks, -c) 0 # core 文件
  2. data seg size (kbytes, -d) unlimited 进程的数据段可以任意大
  3. scheduling priority (-e) 0
  4. file size (blocks, -f) unlimited
  5. pending signals (-i) 127977 # 同时打开的最大进程数
  6. max locked memory (kbytes, -l) 64 一个任务最大锁住的物理内存最大值为 64 kb
  7. max memory size (kbytes, -m) unlimited
  8. open files (-n) 65535 一个任务最多可以打开的文件数;
  9. pipe size (512 bytes, -p) 8
  10. POSIX message queues (bytes, -q) 819200
  11. real-time priority (-r) 0
  12. stack size (kbytes, -s) 8192
  13. cpu time (seconds, -t) unlimited
  14. max user processes (-u) 127977
  15. virtual memory (kbytes, -v) unlimited 虚拟内存上限
  16. file locks (-x) unlimited 能锁住的文件的最大个数

我们可以通过以下几种方式来使用 ulimit:

  • 在用户的启动脚本中如果用户使用的是 bash,就可以在用户的目录下的 .bashrc 文件中,加入 ulimit – u 64,来限制用户最多可以使用 64 个进程。此外,可以在与 .bashrc 功能相当的启动脚本中加入 ulimt。
  • 在应用程序的启动脚本中如果用户要对某个应用程序 myapp 进行限制,可以写一个简单的脚本 startmyapp。 | 1
    2 | ulimit – s 512
    myapp | | —- | —- |

  • 以后只要通过脚本 startmyapp 来启动应用程序,就可以限制应用程序 myapp 的线程栈大小为 512K。

    查看发行版

  1. cat /etc/*-release