1. ulimit 概述
在linux下一切皆文件,开启一个进程就是打开一个文件,控制ulimit大小作用等同于限制进程及其子进程的资源使用
系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作? ulimit 是Linux在处理这些问题时,经常使用的一种简单手段。 ulimit 是一种 Linux 系统的内建功能,它具有一套参数集,用于为由它生成的 shell进程及其子进程的资源使用设置限制。
ulimit: 显示(或设置)用户可以使用的资源的限制(limit),这限制分为【软限制(当前限制)】和【硬限制(上限)】。 其中: 硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。
ulimit 不限制用户可以使用的资源,但可设置对可打开的最大文件数(max open files) 和可同时运行的最大进程数(max user processes)等限制。
2. ulimit 命令详解
root@local:~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256868
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1048576
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 256868
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
3. ulimit 查看
root@local:~# ulimit -n
1048576
root@local:~#
4. ulimit 参数永久更改
在Linux中,要永久性地设置ulimit值,你需要编辑/etc/security/limits.conf文件。这个文件用于配置用户和组的资源限制。
以下是一个如何设置ulimit的例子:
- 1、 打开/etc/security/limits.conf文件。
sudo vim /etc/security/limits.conf
- 2、 添加或修改以下行,以设置所需的资源限制。例如,要为所有用户设置软文件描述符限制为4096,硬限制为65536,你可以添加:
* soft nofile 4096
* hard nofile 65536
这里的*代表所有用户,nofile是指打开文件的数量,soft和hard分别代表软限制和硬限制。
