一、命令簡介
ulimit是一個計算機命令,用於shell啟動進程所占用的資源,可用於修改系統資源限制。使用ulimit命令用於臨時修改資源限制,如果需要永久修改需要將設置寫入配置文件/etc/security/limits.conf。
二、使用示例
1、查看當前資源限制設置
[root@test1 ~]# 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) 3766
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 2048
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) 3766
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
2、設置單一用戶進程上限
[root@test1 ~]# ulimit -u 500
[root@test1 ~]# ulimit -a |grep user
max user processes (-u) 500
3、設置句柄數上限
[root@test1 ~]# ulimit -n
1024
[root@test1 ~]# ulimit -n 20480
[root@test1 ~]# ulimit -n
20480
4、配置core文件大小為無限制
該參數設置常用於JVM奔潰時問題排查臨時開啟,用於轉儲JVM奔潰前的數據內容。
[root@test1 ~]# ulimit -c
0
[root@test1 ~]# ulimit -c unlimited
[root@test1 ~]# ulimit -c
unlimited
5、設置虛擬內存最大值
[root@test1 ~]# ulimit -v 2048000
[root@test1 ~]# ulimit -a |grep virtual
virtual memory (kbytes, -v) 2048000
三、使用語法及參數說明
1、使用語法
用法:ulimit [-SHacdefilmnpqrstuvx] [limit]
2、參數說明
參數 參數說明
-H 設置硬資源限制.
-S 設置軟資源限制.
-a 顯示當前所有的資源限制.
-c size 設置core文件的最大值.單位:blocks,默認0
-d size 設置數據段的最大值.單位:kbytes,默認unlimited
-e 調度優先級,一般根據nice設置,默認0
-f size 設置創建文件的最大值.單位:blocks,默認unlimited
-i 待定信號值,默認3766
-l size 設置在內存中鎖定進程的最大值.單位:kbytes,默認64
-m size 設置可以使用的常駐內存的最大值.單位:kbytes,默認unlimited
-n size 設置內核可以同時打開的文件描述符的最大值,默認1024
-p size 設置管道緩沖區的最大值.單位:kbytes,默認8
-q 可以創建使用POSIX消息隊列的最大值,單位為bytes,默認819200
-r 限制程序實時優先級的范圍,只針對普通用戶,默認值0
-s size 設置堆棧的最大值.單位:kbytes,默認8192
-t size 設置CPU使用時間的最大上限.單位:seconds,默認unlimited
-u <程序數目> 用戶最多可開啟的程序數目,默認3766
-v siz 設置虛擬內存的最大值.單位:kbytes,默認unlimited
-x 鎖定文件大小限制,默認unlimited,默認unlimited
3、limits.conf 配置文件關鍵字說明
關鍵字 說明
domain 是指生效實體
user 用戶名
@group 指定用戶組
* 表示默認值
type 指限制類型
soft 軟限制
hard 硬限制
item 限制資源
core 同ulimit -c
data 同ulimit -d
fsize 同ulimit -f
memloc 同ulimit -l
nofile 同ulimit -n
stack 同ulimit -s
cpu 同ulimit -t
nproc 同ulimit -u
maxlogins 指定用戶可以同時登陸的數量
maxsyslogins 系統可以同時登陸的用戶數
priority 用戶進程運行的優先級
locks 用戶可以鎖定的文件最大值
sigpengding 同ulimit -i
msgqueue 同ulimit -q