ulimit常用參數介紹
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
ulimit 用於限制 shell 啟動進程所占用的資源,支持以下各種類型的限制:所創建的內核文件的大小、進程數據塊的大小、Shell 進程創建文件的大小、內存鎖住的大小、常駐內存集的大小、打開文件描述符的數量、分配堆棧的最大大小、CPU 時間、單個用戶的最大線程數、Shell 進程所能使用的最大虛擬內存。同時,它支持硬資源和軟資源的限制。
一.ulimit常用參數介紹:
-a:顯示目前資源限制的設定;
-c <core文件上限>:設定core文件的最大值,單位為區塊;
-d <數據節區大小>:程序數據節區的最大值,單位為KB;
-f <文件大小>:shell所能建立的最大文件,單位為區塊;
-H:設定資源的硬性限制,也就是管理員所設下的限制;
-m <內存大小>:指定可使用內存的上限,單位為KB;
-n <文件數目>:指定同一時間最多可開啟的文件數;
-p <緩沖區大小>:指定管道緩沖區的大小,單位512字節;
-s <堆疊大小>:指定堆疊的上限,單位為KB;
-S:設定資源的彈性限制;
-t <CPU時間>:指定CPU使用時間的上限,單位為秒;
-u <程序數目>:用戶最多可開啟的程序數目;
-v <虛擬內存大小>:指定可使用的虛擬內存上限,單位為KB。
其實上面的這些參數只是一部們,不過已經夠運維人員使用了,如果你對這個命令想要了解更多的話,還是建議使用man命令。里面也有詳細的使用技巧。如下圖,如果你要是英語不感冒的話,可以借助目前很流行的谷歌,百度翻譯等工具。
二.修改ulimit的配置文件
[root@node101 ~]# ulimit -n #查看默認指定同一時間最多可開啟的文件數,這個值顯然是不合理的,我們必須得修改它! [root@node103 ~]# [root@node101 ~]# ulimit -u #查看默認用戶最多可開啟的程序數目,這個貌似是根據你的機器配置會有相應的變化 [root@node101 ~]# [root@node101 ~]# ulimit -a #顯示目前資源限制的設定 core file size (blocks, -c) 0 #core文件的最大值為100 blocks。 data seg size (kbytes, -d) unlimited #進程的數據段可以任意大。 scheduling priority (-e) 0 #指定調度優先級 file size (blocks, -f) unlimited #文件可以任意大。 pending signals (-i) 31152 #最多有31152個待處理的信號。 max locked memory (kbytes, -l) 64 #一個任務鎖住的物理內存的最大值為64KB。 max memory size (kbytes, -m) unlimited #一個任務的常駐物理內存的最大值。 open files (-n) 1024 #一個任務最多可以同時打開1024的文件。 pipe size (512 bytes, -p) 8 #管道的最大空間為4096字節。 POSIX message queues (bytes, -q) 819200 #POSIX的消息隊列的最大值為819200字節。 real-time priority (-r) 0 #指定實時優先級 stack size (kbytes, -s) 8192 #進程的棧的最大值為8192字節。 cpu time (seconds, -t) unlimited #進程使用的CPU時間。 max user processes (-u) 31152 #當前用戶同時打開的進程(包括線程)的最大個數為31152。 virtual memory (kbytes, -v) unlimited #沒有限制進程的最大地址空間。 file locks (-x) unlimited #所能鎖住的文件的最大個數沒有限制。 [root@node101 ~]# [root@node101 ~]# vi /etc/security/limits.conf #往里面配置相應的參數,我這里就做了6項優化 [root@node101 ~]# cat /etc/security/limits.conf | grep -v ^# | grep -v ^$ * soft nofile 32768 * hard nofile 1048576 * soft nproc 65536 * hard nproc unlimited * soft memlock unlimited * hard memlock unlimited [root@node101 ~]# [root@node101 ~]# reboot #按照上面的配置完成后,需要重啟操作系統 Connection closed by foreign host. Disconnected from remote host(node101.yinzhengjie.org.cn) at 12:23:03. Type `help' to learn how to use Xshell prompt. [d:\~]$ Connecting to 172.30.1.101:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Last login: Mon Oct 1 07:50:21 2018 from 172.30.1.1 [root@node101 ~]# [root@node101 ~]# 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) 31152 max locked memory (kbytes, -l) unlimited #這個值發生變化了,之前是64,現在是沒有限制啦! max memory size (kbytes, -m) unlimited open files (-n) 32768 #這個值發生了變化,之前是1024! 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) unlimited #這個值也發生了變化,之前是31152,現在是沒有限制 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@node101 ~]#