群众眼睛雪亮 發表於 2023-8-23 00:00:00

linux的最大打开文件数限制修改方法

<p>
        <span><strong>前言</strong></span></p>
<p>
        本文主要给大家介绍了关于linux最大打开文件数限制修改的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:</p>
<p>
        linux会为每个用户登录系统打开最大文件数都有限制, 这个限制通过<code> ulimit -n</code> 可以看到, 一般是 1024 .</p>
<p>
        在一些并发或多线程情况下, 需要突破这个限制.</p>
<p>
        <span><strong>修改</strong></span></p>
<p>
        第一步 编辑 /etc/security/limits.conf 并确保其包含下列行:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_564402">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">* soft nofile 65535</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">* hard nofile 65535</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这里 * 表示所有用户, 但有的系统不认, 需要具体的用户名, 比如:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_2760">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">root soft nofile 65535</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">root hard nofile 65535</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        第二步 编辑 etc/pam.d/login , 确保有如下行:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_856816">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">session required pam_limits.so</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        第三步 退出终端重新登录.</p>
<p>
        <span><strong>验证</strong></span></p>
<p>
        使用 <code>ulimit -Hn</code> 和 <code>ulimit -Sn</code> 命令可以分别查看当前进程用户的 hard 和 soft 的限制数.</p>
<p>
        或者当前用户启动某个程序后, 通过 <code>cat /proc/&lt;PID&gt;/limits </code>(pid是该进程的, 或者其随便一个子进程的pid)</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
        原文链接:http://www.hongweipeng.com/index.php/archives/1344/</p>
頁: [1]
查看完整版本: linux的最大打开文件数限制修改方法