[本文轉載來源為:http://www.maidaole.com/index.php?op=ViewArticle&articleId=16&blogId=1]
有時候在程序裡面需要打開多個文件,進行分析,系統一般默認數量是1024,(用ulimit-a可以看到)對於正常使用是夠了,但是對於程序來講,就太少了。
修改辦法:
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
重啟就OK
ulimit命令
用途
設置或報告用戶資源極限。
語法
ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -s ] [ -t ] [ Limit ]
描述
ulimit命令設置或報告用戶進程資源極限,如/etc/security/limits文件所定義。 文件包含以下缺省值極限:
fsize = 2097151
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
當新用戶添加到系統中時,這些值被作為缺省值使用。當向系統中添加用戶時,以上值通過mkuser命令設置,或通過chuser命令更改。
極限分為軟性和硬性。 通過ulimit命令,用戶可將軟極限更改到硬極限的最大設置值。 要更改資源硬極限,必須擁有root用戶權限。
很多系統不包括以上一種或數種極限。特定資源的極限在指定Limit參數時設定。Limit參數的值可以是每個資源中指定單元中的數字,或者為值unlimited。 要將特定的ulimit設置為unlimited,可使用詞unlimited。
注:在/etc/security/limits文件中設置缺省極限就是設置了系統寬度極限,而不僅僅是創建用戶時用戶所需的極限。
省略Limit參數時,將會打印出當前資源極限。除非用戶指定-H標誌,否則打印出軟極限。當用戶指定一個以上資源時,極限名稱和單元在值之前打印。如果未給予選項,則假定帶有了-f標誌。
由於ulimit命令影響當前shell環境,所以它將作為shell常規內置命令提供。如果在獨立的命令執行環境中調用該命令,則不影響調用者環境的文件大小極限。以下示例中正是這種情況:
nohup ulimit -f 10000nohupulimit-f10000
env ulimit 10000envulimit10000
一旦通過進程減少了硬極限,若無root特權則無法增加,即使返回到原值也不可能。
關於用戶和系統資源極限的更多信息,請參見AIX5LVersion5.2TechnicalReference:BaseOperatingSystemandExtensionsVolume1中的getrlimit、setrlimit或vlimit子例程。
标志標誌
-a 列出所有當前資源極限。
-c 以512字節塊為單位,指定核心轉儲的大小。
-d 以K字節為單位指定數據區域的大小。
-f 使用Limit參數時設定文件大小極限(以塊計),或者在未指定參數時報告文件大小極限。缺省值為-f標誌。
-H 指定設置某個給定資源的硬極限。 如果用戶擁有root用戶權限,可以增大硬極限。任何用戶均可減少硬極限。
-m 以K字節為單位指定物理存儲器的大小。
-n 指定一個進程可以擁有的文件描述符的數量的極限。
-s 以K字節為單位指定堆棧的大小。
-S 指定為給定的資源設置軟極限。軟極限可增大到硬極限的值。如果-H和-S標誌均未指定,極限適用於以上二者。
-t 指定每個進程所使用的秒數。
退出狀態
返回以下退出值:
0成功完成。
>0 拒絕對更高的極限的請求,或發生錯誤。
示例
要將文件大小極限設置為51,200字節,輸入:
ulimit -f 100ulimit-f100
文件
usr/bin/ksh包含ulimit內置命令。
相關信息
ksh命令。
AIX5LVersion5.2TechnicalReference:BaseOperatingSystemandExtensionsVolume1中的ulimit子例程、getrlimit、setrlimit或vlimit子例程。
沒有留言:
張貼留言