1,說明:
ulimit用於shell啓動進程所佔用的資源.
2,類別:
shell內建命令
3,語法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,參數介紹:
-H 設置硬件資源限制.
-S 設置軟件資源限制.
-a 顯示當前所有的資源限制.
-c size:設置core文件的最大值.單位:blocks
-d size:設置數據段的最大值.單位:kbytes
-f size:設置創建文件的最大值.單位:blocks
-l size:設置在內存中鎖定進程的最大值.單位:kbytes
-m size:設置可以使用的常駐內存的最大值.單位:kbytes
-n size:設置內核可以同時打開的文件描述符的最大值.單位:n
-p size:設置管道緩衝區的最大值.單位:kbytes
-s size:設置堆棧的最大值.單位:kbytes
-t size:設置CPU使用時間的最大上限.單位:seconds
-v size:設置虛擬內存的最大值.單位:kbytes
5.舉例
在Linux下寫程序的時候,如果程序比較大,經常會遇到“段錯誤”(segmentation fault)這樣的問題,這主要就是由於Linux系統初始的堆棧大小(stack size)太小的緣故,一般爲10M。我一般把stack size設置成256M,這樣就沒有段錯誤了!命令爲:
ulimit -s 262140
如果要系統自動記住這個配置,就編輯/etc/profile文件,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,添加“ulimit -s 262140”,保存重啓系統就可以了!
ulimit用於shell啓動進程所佔用的資源.
2,類別:
shell內建命令
3,語法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,參數介紹:
-H 設置硬件資源限制.
-S 設置軟件資源限制.
-a 顯示當前所有的資源限制.
-c size:設置core文件的最大值.單位:blocks
-d size:設置數據段的最大值.單位:kbytes
-f size:設置創建文件的最大值.單位:blocks
-l size:設置在內存中鎖定進程的最大值.單位:kbytes
-m size:設置可以使用的常駐內存的最大值.單位:kbytes
-n size:設置內核可以同時打開的文件描述符的最大值.單位:n
-p size:設置管道緩衝區的最大值.單位:kbytes
-s size:設置堆棧的最大值.單位:kbytes
-t size:設置CPU使用時間的最大上限.單位:seconds
-v size:設置虛擬內存的最大值.單位:kbytes
5.舉例
在Linux下寫程序的時候,如果程序比較大,經常會遇到“段錯誤”(segmentation fault)這樣的問題,這主要就是由於Linux系統初始的堆棧大小(stack size)太小的緣故,一般爲10M。我一般把stack size設置成256M,這樣就沒有段錯誤了!命令爲:
ulimit -s 262140
如果要系統自動記住這個配置,就編輯/etc/profile文件,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,添加“ulimit -s 262140”,保存重啓系統就可以了!
選項 [options] | 含義 | 例子 |
-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。 |