Linux 对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,
设置个Linux用户的最大进程数,一些需要设置为无限制;
ulimit 参数说明
选项 | 含义 | 例子 |
-H | 设置硬资源限制,一旦设置不能增加。 | ulimit –Hs 64;限制硬资源,线程栈大小为 64K。 |
-S | 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 | ulimit –Sn 32;限制软资源,32 个文件描述符。 |
-a | 显示当前所有的 limit 信息。 | ulimit –a;显示当前所有的 limit 信息。 |
-c | 最大的 core 文件的大小, 以 blocks 为单位。 | ulimit –c unlimited; 对生成的 core 文件的大小不进行限制。 |
-d | 进程最大的数据段的大小,以 Kbytes 为单位。 | ulimit -d unlimited;对进程的数据段大小不进行限制。 |
-f | 进程可以创建文件的最大值,以 blocks 为单位。 | ulimit –f 2048;限制进程可以创建的最大文件大小为 2048 blocks。 |
-l | 最大可加锁内存大小,以 Kbytes 为单位。 | ulimit –l 32;限制最大可加锁内存大小为 32 Kbytes。 |
-m | 最大内存大小,以 Kbytes 为单位。 | ulimit –m unlimited;对最大内存不进行限制。 |
-n | 可以打开最大文件描述符的数量。 | ulimit –n 128;限制最大可以使用 128 个文件描述符。 |
-p | 管道缓冲区的大小,以 Kbytes 为单位。 | ulimit –p 512;限制管道缓冲区的大小为 512 Kbytes。 |
-s | 线程栈大小,以 Kbytes 为单位。 | ulimit –s 512;限制线程栈的大小为 512 Kbytes。 |
-t | 最大的 CPU 占用时间,以秒为单位。 | ulimit –t unlimited;对最大的 CPU 占用时间不进行限制。 |
-u | 用户最大可用的进程数。 | ulimit –u 64;限制用户最多可以使用 64 个进程。 |
-v | 进程最大可用的虚拟内存,以 Kbytes 为单位。 | ulimit –v 200000;限制最大可用的虚拟内存为 200000 Kbytes。 |
-H | 设置硬资源限制,一旦设置不能增加。 | ulimit –Hs 64;限制硬资源,线程栈大小为 64K。 |
-S | 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 | ulimit –Sn 32;限制软资源,32 个文件描述符。 |
-a | 显示当前所有的 limit 信息。 | ulimit –a;显示当前所有的 limit 信息。 |
ulimit 是用来限制用户在当前会话的资源限制的,若新开一个会话,则用户的会话级资源限制又会回复到默认值。如果要想让用户的资源限制的修改同步到用户的每个限制,有两种做法
写入用户家目录的 profile or bashrc 中
修改limits.conf
1.修改/etc/security/limits.conf 文件说明(修改该文件过后需要重启生效,此配置文件系统全局生效,建议只针对单个用户配置):
<domain> <type> <item> <value> <domain>: ckl //用户 @student //组 * //通配符,所有用户 % //通配符,用在组的语法 <type>: soft //软限制 hard //硬限制 <item>: core //限制内核文件的大小 data //最大数据大小限制 fsize //最大文件大小限制 memlock //最大锁内存地址空间 nofile //进程打开文件数的限制 nofile 的软硬限制的值不能超过内核参数 /proc/sys/fs/nr_open ,否则就会有问题 rss //最大持久驻留内存 stack //最大堆栈大小 cpu //最大CPU运行时间 nproc //最大进程数 as //地址空间限制 maxlogins //最大登录次数,用户 maxsyslogins //最大登录次数,登录此系统的最大次数 priority //用户运行的优先级 locks //用户锁定文件数限制 sigpending //信号可以被挂起的最大数 msgqueue //可以创建使用POSIX消息队列的最大值 nice //可以设置的优先级,nice [-20, 19] rtprio //实时优先级, 数字大的优先级高 |
示例:(*:代表所有用户 若需要针对某个用户做配额则根据对应语法格式替换即可。示例仅供参考)
vi /etc/security/limits.conf * soft core unlimit * hard core unlimit * soft fsize unlimited * hard fsize unlimited * soft data unlimited * hard data unlimited * soft nproc 65535 * hard nproc 63535 * soft stack unlimited * hard stack unlimited * soft nofile 409600 * hard nofile 409600 root soft memlock unlimited root hard memlock unlimited root soft sigpending 512000 root hard sigpending 512000 |
- 写入用户家目录的 .bash_profile or .bashrc 说明:
使用写入用户家目录的 .bash_profile 或者 .bashrc 方式添加配额的时候只需要把命令行里生效的配置写入该文件就行,例如:
Vi ~/.bash_profile 或者vi ~/.bashrc
ulimit –m unlimited
ulimit –t unlimited
ulimit –s 51200