前言:
參加unix/linux相關進階研發職位時,是否經常會被文檔,單機允許最大程序數、線程數和socket連接配接數,而你卻感到束手無措呢?本文給你一個最為詳細的答案。
一、最大程序數
運作linux ulimit -a指令,我們可以看到:max user processes =1024 運作結構如下圖所示:
二、最大線程數
<code>3660</code>
看到最大線程數的限制了嗎?3660
三、最大socket連接配接數
關于最大socket連接配接數,因為一個socket連接配接需要占用一個檔案句柄,是以支援打開的連接配接數就是檔案數句柄數:open files (-n) 1024
四、一個程序允許啟動的最大線程數
linux環境,一個程序配置設定的虛拟記憶體空間是4g,可用2g,每個線程stack空間為10m,2048/10 = 200,是以一般的單程序能開通的線程數也就可以确定了。約為200個。
五、ulimit指令詳解
參 數:
-a 顯示目前資源限制的設定。
-c <core檔案上限> 設定core檔案的最大值,機關為區塊。
-d <資料節區大小> 程式資料節區的最大值,機關為kb。
-f <檔案大小> shell所能建立的最大檔案,機關為區塊。
-h 設定資源的硬性限制,也就是管理者所設下的限制。
-m <記憶體大小> 指定可使用記憶體的上限,機關為kb。
-n <檔案數目> 指定同一時間最多可開啟的檔案數。
-p <緩沖區大小> 指定管道緩沖區的大小,機關512位元組。
-s <堆疊大小> 指定堆疊的上限,機關為kb。
-s 設定資源的彈性限制。
-t <cpu時間> 指定cpu使用時間的上限,機關為秒。
-u <程式數目> 使用者最多可開啟的程式數目。
-v <虛拟記憶體大小> 指定可使用的虛拟記憶體上限,機關為kb。