swappiness 参数设置与内存交换优化
<h2>swappiness 简介</h2>
<p>在Debian 12中,swappiness 是一个内核参数,用于控制系统使用交换空间的倾向性。它的值范围从0到100,较低的值表示系统更倾向于保留数据在物理内存中,而较高的值则表示系统更倾向于使用交换空间。</p>
<h2>swappiness 参数值含义</h2>
<ul>
<li><strong>0-1</strong>: 最小化使用交换空间(在Debian 12中,0和1的行为基本相同)</li>
<li><strong>10-20</strong>: 适用于桌面系统,平衡内存使用和性能</li>
<li><strong>60</strong>: Debian 12的默认值</li>
<li><strong>100</strong>: 积极使用交换空间</li>
</ul>
<h2>查看当前 swappiness 值</h2>
<p>在Debian 12中,可以使用以下命令查看当前的 swappiness 值:</p>
<pre><code>cat /proc/sys/vm/swappiness
</code></pre>
<p>或者</p>
<pre><code>sysctl vm.swappiness
</code></pre>
<h2>修改 swappiness 值</h2>
<h3>临时修改(重启后失效)</h3>
<pre><code>sudo sysctl -w vm.swappiness=10
</code></pre>
<h3>永久修改</h3>
<ol>
<li>编辑 <code>/etc/sysctl.d/99-swappiness.conf</code> 文件:</li>
</ol>
<pre><code>sudo nano /etc/sysctl.d/99-swappiness.conf
</code></pre>
<ol start="2">
<li>添加以下行:</li>
</ol>
<pre><code>vm.swappiness = 10
</code></pre>
<ol start="3">
<li>保存文件并退出编辑器</li>
<li>应用更改(无需重启):</li>
</ol>
<pre><code>sudo sysctl -p /etc/sysctl.d/99-swappiness.conf
</code></pre>
<h2>Debian 12 中选择合适的 swappiness 值</h2>
<ul>
<li><strong>桌面使用</strong>: 10-20 通常是个好选择,可以提高系统响应性</li>
<li><strong>服务器</strong>: 根据具体工作负载调整,可能需要更高的值</li>
<li><strong>数据库服务器</strong>: 考虑使用较低的值(如10)来减少I/O延迟</li>
<li><strong>内存受限的系统</strong>: 可能需要保持默认值60或稍高,以更有效地利用交换空间</li>
</ul>
<h2>Debian 12 特有注意事项</h2>
<ul>
<li>Debian 12 使用较新的内核版本,swappiness 的行为可能与旧版本略有不同</li>
<li>Debian 12 默认使用 systemd,这可能影响某些内存管理行为</li>
<li>在修改 swappiness 时,建议同时检查 <code>/etc/fstab</code> 中的交换分区配置</li>
</ul>
<h2>监控和调优</h2>
<p>在Debian 12中,可以使用以下工具来监控内存和交换空间使用情况:</p>
<ul>
<li><code>free -h</code>: 显示内存使用概况</li>
<li><code>vmstat</code>: 提供系统内存、进程、块IO、陷阱和CPU活动的详细信息</li>
<li><code>htop</code>: 交互式进程查看器,可以显示内存和交换使用情况</li>
</ul>