需要根据我自己的服务器需要“计算”最佳ulimit和fs.file-max值

问题描述

| 需要根据我自己的服务器需求“计算”最佳ulimit和fs.file-max值。 请不要与“如何在各种Linux发行版中设置这些限制”问题相冲突。 我在问: 有什么好的指南可以详细解释用于ulimit的参数吗? (> 2.6系列内核) 有什么好的指南可以显示fs.file-max使用情况指标? 实际上,我可以在网上找到一些旧的参考资料: http://www.faqs.org/docs/securing/chap6sec72.html \“某种合理的数值,例如我们每拥有4M的RAM就有256个:即,对于具有128 MB RAM的机器,将其设置为8192-128/4 = 32 32 * 256 = 8192 \” 任何最新的参考表示赞赏。     

解决方法

        对于
fs.file-max
,我认为几乎在所有情况下,您都可以不理会它。如果您正在运行某种类型的非常繁忙的服务器并且实际上用完了文件句柄,则可以增加它-但是需要增加它的值将取决于您正在运行的是哪种服务器以及负载是多少。在它上面。通常,您只需要增加它,直到不再用完文件句柄,或者直到意识到需要更多内存或更多系统来处理负载为止。通过将file-max减小到默认值以下,从“调整”中获得的收益微乎其微,以至于不值得考虑-我的手机可以正常工作,其fs-max值为83588。 顺便说一句,现代内核已经使用经验法则来根据系统中的内存量设置文件最大值。来自2.6内核中的
fs/file_table.c
    /*
     * One file with associated inode and dcache is very roughly 1K.
     * Per default don\'t use more than 10% of our memory for files. 
     */ 

    n = (mempages * (PAGE_SIZE / 1024)) / 10;
    files_stat.max_files = max_t(unsigned long,n,NR_FILE);
files_stat.max_files
fs.file-max
的设定。最终,每1MB内存大约100个。 ulimit当然是关于限制用户或进程分配的资源。如果您有多个用户或类似的情况,则可以决定如何划分系统资源并限制内存使用,进程数等。可设置的限制详细信息的权威指南是setrlimit man页面(当然还有内核源代码)。     ,        通常,较大的系统(例如Oracle或SAP)建议使用很高的限制,以使其不受其影响。我只能建议使用这种方法。数据结构将动态分配,因此只要您不需要它们,它们就不会耗尽内存。如果您确实需要它们,将无助于限制它们,因为如果达到限制,应用程序通常会崩溃。   fs.file-max = 6815744#这大约是70GB RAM系统的默认限制 用户rlimits(nofile)也是如此,您将使用65535。 请注意,这两个建议仅适用于具有关键应用程序和受信任的Shell用户的专用服务器。多用户交互式Shell主机必须具有限制性的max设置。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...