ulimit主要查看linux系统下对系资源分配的限制情况,查看全部使用ulimit -a (all)
ulimit 参数说明
选项 [options] 含义 例子
-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 –n128;限制最大可以使用 128 个文件描述符。
-p 管道缓冲区的大小,以 Kbytes 为单位。 ulimit – p 512;限制管道缓冲区的大小为 512 Kbytes。
-s 线程栈大小,以 Kbytes 为单位。 ulimit – s 512;限制线程栈的大小为 512 Kbyte
-t 最大的 CPU 占用时间,以秒为单位。 ulimit -t unlimited;对最大的 CPU 占用时间不进行限制
-u 用户最大可用的进程数。 ulimit – u 64;限制用户最多可以使用 64 个进程。
-v 进程最大可用的虚拟内存,以 Kbytes 为单位。 ulimit -v 200000;限制最大可用的虚拟内存为 200000 Kbytes
这里对其中几个常用选项进行说明:
1.-c/-f 的单位为blocks,注意不是kb. 在无文件系统的分区中,1blocks=0.5kb;在有文件系统的分区中,blocks大小是不确定的,需要特定工具来查看.
一般这两项,没有特殊要求通常设置为unlimited
2.-n 查看设置打开文件描述符的数量选项,在web服务器系统中常配置。应用服务器系统中,一个tcp或者socket连接就会开启一个文件描述符,知道连接断开.为了保护系统资源部被耗尽,通常会为该选项设置一个上限,例如10240说明系统最大打开文件描述符数位10240个,如果服务器连接数量大于此值,系统就会不在接受连接,无论应用服务器目前还有多大的承受能力.如果作为测试应用服务器,在做压力测试前一定记得查看该选项值,通常把它设置为unlimited.
3.-s 设置线程栈大小,在进程最大可用虚拟内存一定的情况下,适量缩小线程栈大小,可以提高系统分配更多的线程数量.例如原先线程栈大小为1024kb,现在修改为512kb,则可并发的线程数量就会提高.以此来提高系统并发处理能力.