歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux ulimit命令用法解析

linux ulimit命令用法解析

日期:2017/3/1 18:02:41   编辑:Linux技術

學習ulimit命令的用法。
功能說明:控制shell程序的資源。
語  法:ulimit [-aHS][-c <core文件上限>][-d <數據節區大小>][-f <文件大 小>][-m <內存大小>][-n <文件數目>][-p <緩沖區大小>][-s <堆疊大 小>][-t <CPU時間>][-u <程序數目>][-v <虛擬內存大小>]
補充說明:ulimit為shell內建指令,可用來控制shell執行程序的資源。
參  數:


復制代碼代碼如下:
-a  顯示目前資源限制的設定。
-c <core文件上限>  設定core文件的最大值,單位為區塊。
-d <數據節區大小>  程序數據節區的最大值,單位為KB。
-f <文件大小>  shell所能建立的最大文件,單位為區塊。
-H  設定資源的硬性限制,也就是管理員所設下的限制。
-m <內存大小>  指定可使用內存的上限,單位為KB。
-n <文件數目>  指定同一時間最多可開啟的文件數。
-p <緩沖區大小>  指定管道緩沖區的大小,單位512字節。
-s <堆疊大小>  指定堆疊的上限,單位為KB。
-S  設定資源的彈性限制。
-t <CPU時間>  指定CPU使用時間的上限,單位為秒。
-u <程序數目>  用戶最多可開啟的程序數目。
-v <虛擬內存大小>  指定可使用的虛擬內存上限,單位為KB。

ulimit -a 用來顯示當前的各種用戶進程限制。
Linux對於每個用戶,系統限制其最大進程數。為提高性能,可以根據設備資源情況,設置各linux 用戶的最大進程數。
例如,把某linux用戶的最大進程數設為10000個:
ulimit -u 10000
對於需要做許多 socket 連接並使它們處於打開狀態的 Java 應用程序而言,
最好通過使用 ulimit -n xx 修改每個進程可打開的文件數,缺省值是 1024。
ulimit -n 4096 將每個進程可以打開的文件數目加大到4096,缺省為1024
其他建議設置成無限制(unlimited)的一些重要設置是:


復制代碼代碼如下:
數據段長度:ulimit -d unlimited
最大內存大小:ulimit -m unlimited
堆棧大小:ulimit -s unlimited
CPU 時間:ulimit -t unlimited
虛擬內存:ulimit -v unlimited

有時服務器需要調整ulimit的stack size 參數調整為unlimited 無限,使用ulimit -s unlimited時只能在當時的shell見效,重開一個shell則失效。

解決方法:

在/etc/profile 的最後面添加ulimit -s unlimited。
然後:
# source /etc/profile
使修改即時生效。
可能的問題:
如果碰到類似的錯誤提示
ulimit: max user processes: cannot modify limit: 不允許的操作
ulimit: open files: cannot modify limit: 不允許的操作
以上操作對root用戶是不會提示這樣的限制信息的,只對普通用戶有影響,原因何在?
大家可以去研究下文件:/etc/security/limits.conf。
說明:
linux對用戶有默認的ulimit限制,而這個文件可以配置用戶的硬配置和軟配置,硬配置是個上限。
超出上限的修改就會出“不允許的操作”這樣的錯誤。
可以在limits.conf文件最後添加相關內容,如下圖:


即限制任意用戶的最大線程數和文件數為10240。
Copyright © Linux教程網 All Rights Reserved