常用配置
檢視linux系統級的最大打開檔案數限制,使用如下指令:
指令參數
描述
例子
-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
我們可以使用ulimit -a檢視我們系統的所有限制
檢視linux系統級的最大打開檔案數限制,使用如下指令
1、總結系統限制有:
/proc/sys/kernel/pid_max #查系統支援的最大線程數,一般會很大,相當于理論值
/proc/sys/kernel/thread-max
max_user_process(ulimit -u) #系統限制某使用者下最多可以運作多少程序或線程
/proc/sys/vm/max_map_count
硬體記憶體大小
2、Java虛拟機本身限制:
-Xms #intial java heap size
-Xmx #maximum java heap size
-Xss #the stack size for each thread
3、查詢目前某程式的線程或程序數
pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l
或
pstree -p <pid> | wc -l
4、查詢目前整個系統已用的線程或程序數
pstree -p | wc -l
5、檢視所有存在的線程
ps xH
6、檢視一個程序起的線程數
ps -mp <pid>