2009-07-31 77 views
15

是否可以將打開文件的最大數量設置爲某個「無限」值或必須是數字?在Linux上 - 將最大打開文件設置爲無限制。可能?

我有一個要求,將守護程序用戶的描述符限制設置爲「無限」,我試圖確定這是可能的還是如何去做。我見過一些郵件列表是指可以使用的「最大」值(如:「myuser hard nofile max」,但到目前爲止,我所查閱的手冊頁和參考文獻並未支持這些。)

如果我不能使用'最大'或類似的,我想知道如何確定文件的最大數量是多少(理論上),所以我有一些基礎,我選擇的數字我不想使用100000000或東西,如果有一個更合理的方式來獲得一個上限

我使用RHEL 5,如果是重要的

更新:。我是白癡,當談到寫作的問題。理想情況下,我想在極限情況下這樣做s.conf文件(這是「max」將來自哪裏)。這是否會改變任何答案?


感謝您的意見。這是爲了一個JBOSS實例,而不是我正在寫的守護進程,所以我不知道setrlimit()對我是否有用。然而,Jefromi--我的確喜歡Infinity的定義:)我看到一篇文章指出文件描述符是「兩條短褲和一個指針」,所以我應該能夠計算出近似的上限。

回答

32

POSIX允許您使用setrlimit()RLIMIT_NOFILE資源限制設置爲RLIM_INFINITY。這意味着系統不會執行此資源限制。當然,您仍然受到實現(例如MAXINT)和任何其他資源限制(例如可用內存)的限制。

更新: RHEL 5具有的1048576對於該極限(NR_OPEN/usr/include/linux/fs.h中)最大值(2 ),以及將不接受任何較大的值,包括無限大,即使對於根。因此,在RHEL 5上,您可以在/etc/security/limits.conf中使用此值,這與您將要達到無限大相近。

不久之前a Linux kernel patch已應用於允許將此限制設置爲無窮大,但it has since been reverted as a result of unintended consequences

+6

有沒有什麼最近更改爲2015年? – CMCDragonkai 2015-02-25 04:38:21

0

嘗試線

<domain> - 

與用戶名替換<domain>,在最簡單的情況。

limits.conf man page

- 
    for enforcing both soft and hard resource limits together. 

    Note, if you specify a type of '-' but neglect to supply the 
    item and value fields then the module will never enforce any 
    limits on the specified user/group etc. . 
相關問題