华丽月色 發表於 2023-5-9 00:00:00

Ubuntu添加swap分区的方法

<p>
        前段时间上车了腾讯云 360 买三年多的学生机的活动,加上降配总共获得 6 年,然而内存降到 1G 后,跑个 mysql 时间长了内存都不够。而且腾讯云的 ubuntu 不知道什么原因 1G 内存实际只有 800+M,更加雪上加霜。</p>
<p>
        终于前两天服务器由于内存爆了而又没有开 swap 崩了,几乎死机状态,ssh 都连不上,控制台强制重启才恢复正常。为了防止再次出现这种情况,我就给服务器加了个 swap。</p>
<p>
        参考文档: https://askubuntu.com/questions/33697/how-do-i-add-a-swap-partition-after-system-installation/796997#796997</p>
<p>
        <span><strong>首先来了解一下什么是Swap</strong></span></p>
<p>
        Swap分区(也称交换分区)是硬盘上的一个区域,被指定为操作系统可以临时存储数据的地方,这些数据不能再保存在RAM中。 基本上,这使您能够增加服务器在工作“内存”中保留的信息量,但有一些注意事项,主要是当RAM中没有足够的空间容纳正在使用的应用程序数据时,将使用硬盘驱动器上的交换空间。</p>
<p>
        写入磁盘的信息将比保存在RAM中的信息慢得多,但是操作系统更愿意将应用程序数据保存在内存中,并使用交换旧数据。 总的来说,当系统的RAM耗尽时,将交换空间作为回落空间可能是一个很好的安全网,可防止非SSD存储系统出现内存不足的情况。</p>
<p>
        具体步骤和命令如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_773290">
                        <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>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># 创建一个空文件,具体大小的话对于小内存机器建议为内存的两倍 (例子中 1K * 4M = 4 GiB).</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">mkdir</code> <code class="bash plain">-</code><code class="bash functions">v</code> <code class="bash plain">/var/cache/swap</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">cd</code> <code class="bash plain">/var/cache/swap</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">dd</code> <code class="bash keyword">if</code><code class="bash plain">=</code><code class="bash plain">/dev/zero</code> <code class="bash plain">of=swapfile bs=1K count=4M</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash functions">chmod</code> <code class="bash plain">600 swapfile</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash comments"># 将新建的文件转换为 swap 文件.</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">mkswap swapfile</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                         </div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash comments"># 开启 swap.</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                         </div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">swapon swapfile</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                         </div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="bash comments"># 通过 swapon 或者 top 命令进行验证:</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash plain">swapon -s</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="bash comments"># 或者</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash functions">top</code> <code class="bash plain">-bn1 | </code><code class="bash functions">grep</code> <code class="bash plain">-i swap</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="bash comments"># 会显示类似信息: KiB Swap: 4194300 total, 4194300 free</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                         </div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="bash comments"># 禁用 swap 时可以使用 sudo swapoff swapfile.</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                         </div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="bash comments"># 将该分区设置成开机加载.</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="bash functions">echo</code> <code class="bash string">"/var/cache/swap/swapfile none swap sw 0 0"</code> <code class="bash plain">| </code><code class="bash functions">sudo</code> <code class="bash functions">tee</code> <code class="bash plain">-a </code><code class="bash plain">/etc/fstab</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                         </div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="bash comments"># 测试开机加载:</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">swapoff swapfile</code>
</div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="bash functions">sudo</code> <code class="bash plain">swapon -va</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>
        原文链接:https://blog.qxzzf.com/archives/458/</p>
頁: [1]
查看完整版本: Ubuntu添加swap分区的方法