1,
ulimit 用於shell啟動程序所占用的資源,可用於修改系統資源限制
2,使用ulimit -a 可以檢視當前系統的所有限制值
使用ulimit -n 《可以同時開啟的檔案數》 設定使用者可以同時開啟的最大檔案數(max open files)
新裝的linux預設只有1024,當作為併發訪問量大的伺服器時,很容易遇到error: too many open files。
error: too many open files
對應的原始碼可以訪問這裡獲取:
[root@centos8 limits.d]# whereisulimit
ulimit: /usr/bin/ulimit
[root@centos8 limits.d]# rpm -qf /usr/bin/ulimit
bash-4.4.19-10.el8.x86_64
屬於bash這個包,預設已經安裝
1,檢視版本:
ulimit沒有提供顯示版本的引數,
但它屬於bash包,可以檢視bash的版本
[root@centos8 limits.d]# bash --versiongnu bash,版本
4.4.19(1)-release (x86_64-redhat-linux-gnu)
2016
free software foundation, inc.
許可證 gplv3+: gnu gpl 許可證第三版或者更新版本 //
gnu.org/licenses/gpl.html>
本軟體是自由軟體,您可以自由地更改和重新發布。
在法律許可的情況下特此明示,本軟體不提供任何擔保。
2,檢視幫助
[root@centos8 limits.d]# ulimit --help
3,檢視手冊
[root@centos8 limits.d]# man ulimit
1,列出當前的所有限制
#-a: 所有當前限制都被報告
[root@centos8 ~]# ulimit -acore
file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14898
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 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) 14898
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
各字段的說明:
core file size -c:設定core檔案的最大值.單位:blocks
data seg size -d:設定資料段的最大值.單位:kbytes
scheduling priority -e:
最高的排程優先順序 (`nice')
file size -f:設定建立檔案的最大值.單位:blocks
pending signals -i :
最多的可以掛起的訊號數
max locked memory -l:設定在記憶體中鎖定程序的最大值.單位:kbytes
max memory size -m:設定可以使用的常駐記憶體的最大值.單位:kbytes
open files -n:設定核心可以同時開啟的檔案描述符的最大值.單位:n
pipe size -p:設定管道緩衝區的最大值.單位:kbytes
stack size -s:設定堆疊的最大值.單位:kbytes
cpu time -t:設定cpu使用時間的最大上限.單位:seconds
virtual memory -
v
:設定虛擬記憶體的最大值.單位:kbytes
max user processes: -u 使用者最多可開啟的程式數目
file locks -x :最大的檔案鎖數量
2,檢視/設定使用者最多開啟的檔案描述符數量
#-n: open files
[root@centos8 limits.d]# ulimit -n1024
[root@centos8 limits.d]# ulimit -n 65535
[root@centos8 limits.d]# ulimit -n
65535
3,檢視/設定使用者最多可開啟的程序數目
#-u: max user processes
[root@centos8 limits.d]# ulimit -u14898
[root@centos8 limits.d]# ulimit -u 65535
[root@centos8 limits.d]# ulimit -u
65535
4,其他引數:
#-s指soft 限制 (只給出警告資訊,而不是硬限制)
#-h指hard 限制
[root@centos8 limits.d]# ulimit -shn 65535
說明:此命令等效 ulimit -n 65535
1,使用 ulimit -n 65535 可即時修改,但重啟後就無效了。
要設定limits.conf配置檔案才可以永久生效
2,修改資源的配置檔案
[root@centos8 ~]$ vi /etc/security/limits.conf
增加內容:
* soft nofile 65535* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
內容說明:
limits.conf的格式如下:
domain: 起作用的範圍,
萬用字元*表示是針對所有使用者的限制
也可以指定使用者,例如:root
type: 取值: soft,hard 和 -
soft 指的是當前系統生效的設定值(警告)
hard 表明系統中所能設定的最大值(錯誤)
soft 的限制不能比har 限制高,- 表明同時設定了 soft 和 hard 的值。
item:
nofile - 開啟的檔案描述符的最大數目
nproc - 程序最大數量
編輯完成後,重啟伺服器使生效
因為ulimit和limits.conf的配置只針對登入使用者,
而對systemd管理的服務不起作用,
服務的limit要在service檔案中單獨指定
請參考這一篇:
centos8平台使用lsof
lsof,list open files 列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,所以lsof通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體 對應的原始碼可以訪問這裡獲取 1,檢視lsof所屬的包 root blog whereis lsof lsof ...
centos8平台使用mpstat監控cpu
mpstat是 multiprocessor statistics的縮寫,是實時cpu監控工具。在多cpu系統裡,其不但能檢視所有cpu的平均狀況資訊,而且能夠檢視特定cpu的資訊 它的資料來自於 proc stat檔案 對應的原始碼可以訪問這裡獲取 1,檢視所屬的包 root blog where...
centos8平台使用iotop監控磁碟io
iotop是監視磁碟i o使用狀況的top類工具,可以針對程序和執行緒統計io的使用情況 對應的原始碼可以訪問這裡獲取 root database1 yum install iotop root database1 iotop help usage usr sbin iotop options th...