西岳庐主人 發表於 2023-12-9 00:00:00

CentOS7 禁用Transparent Huge Pages的实现方法

<p>
        <strong>CentOS7 禁用Transparent Huge Pages</strong></p>
<p>
        自CentOS6版本开始引入了Transparent Huge Pages(THP),从CentOS7版本开始,该特性默认就会启用。尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP(比如说ORACLE、MariaDB、MongoDB等),否则可能会导致性能出现下降。</p>
<p>
        首先检查THP的启用状态:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_202117">
                        <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>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cat /sys/kernel/mm/transparent_hugepage/defrag</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"> madvise never</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cat /sys/kernel/mm/transparent_hugepage/enabled</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"> madvise never</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>
        我们这个时候当然可以逐个修改上述两文件,来禁用THP,但要想一劳永逸的令其永久生效,还是参考下列的步骤。</p>
<p>
        编辑rc.local文件:</p>
<p>
        <span># vim /etc/rc.d/rc.local </span></p>
<p>
        增加下列内容:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_413587">
                        <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>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash keyword">if</code> <code class="bash functions">test</code> <code class="bash plain">-f </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code><code class="bash plain">; </code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">echo</code> <code class="bash plain">never &gt; </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash keyword">fi</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash keyword">if</code> <code class="bash functions">test</code> <code class="bash plain">-f </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/defrag</code><code class="bash plain">; </code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">echo</code> <code class="bash plain">never &gt; </code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/defrag</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash keyword">fi</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        保存退出,然后赋予rc.local文件执行权限:</p>
<p>
        <span><strong># chmod +x /etc/rc.d/rc.local</strong></span></p>
<p>
        最后重启系统,以后再检查THP应该就是被禁用了</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_326967">
                        <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>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cat /sys/kernel/mm/transparent_hugepage/enabled</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">always madvise </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cat /sys/kernel/mm/transparent_hugepage/defrag </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">always madvise </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>
頁: [1]
查看完整版本: CentOS7 禁用Transparent Huge Pages的实现方法