91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux下擴充Swap交換空間:解決內存不足的實用指南,這些影響要注意!

jf_44130326 ? 來源:Linux1024 ? 2026-02-09 16:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家在使用Linux系統(比如常用的Ubuntu)時,是不是偶爾會遇到內存不足的彈窗?比如運行大型編譯任務、多開虛擬機、做數據分析,或者把Linux當服務器用的時候,物理內存一旦告急,系統就會卡頓甚至崩潰。這時候,Swap交換空間就成了救場神器

今天就帶大家全面搞懂Swap:它是什么、什么時候需要擴充、擴充后對堆內存和存儲速率有啥影響,最后附上一步到位的Ubuntu擴充教程,新手也能跟著做!

wKgZPGkaiwuAb3N7AAAG6CSGfhs839.png

一、先搞懂:Swap交換空間到底是什么?

簡單說,Swap就像Linux虛擬內存,和Windows的虛擬內存原理類似——當物理內存(就是你電腦里插的內存條)不夠用的時候,系統會把內存中暫時用不上的數據,臨時存到硬盤(或SSD)的Swap分區(qū)/文件里,騰出物理內存給急需的程序使用。

比如Ubuntu系統默認的Swap大小通常是2G,如果你物理內存是8G,運行一個占10G內存的程序,這時候Swap就會接手剩下的2G,避免程序直接崩潰。

二、這些場景下,一定要擴充Swap!

不是所有情況都需要擴充Swap,關鍵看你的使用場景和系統狀態(tài)。以下3種情況,建議立刻檢查并擴充Swap

1.物理內存不足,頻繁觸發(fā)內存告警

?比如物理內存8G,卻要運行占12G內存的大型軟件(如Matlab、Docker容器集群、視頻渲染工具);

?多任務并發(fā)時(比如開著代碼編輯器、瀏覽器、虛擬機、數據庫),系統卡頓明顯,用free -h命令查看時,可用內存接近0,Swap卻已經占滿。

2.服務器長期高負載運行

如果把Linux當服務器(比如Web服務器、數據庫服務器),長期有大量進程在后臺運行,即使物理內存暫時夠用,也建議擴充Swap——避免突發(fā)流量(比如瞬間大量用戶訪問)導致內存峰值超負載,從而保證服務穩(wěn)定。

3.低內存設備的續(xù)命需求

比如樹莓派嵌入式Linux設備(物理內存可能只有2G/4G),運行輕量級服務器或邊緣計算任務時,2G默認Swap不夠用,擴充后能顯著減少內存溢出風險。

三、擴充Swap對堆內存的影響:有幫助但也有

首先得明確:堆內存是程序運行時動態(tài)申請的內存空間(比如JavaJVM堆、C++new申請的內存),是程序干活的核心內存區(qū)域。Swap和堆內存的關系很緊密,擴充后影響主要有兩點:

1.正面影響:避免堆內存溢出崩潰

當程序申請的堆內存超過物理內存上限時,系統會把堆內存中暫時閑置的數據(比如很久沒調用的變量、緩存數據)轉移到Swap中,釋放物理內存給新的堆內存申請。

舉個例子:你運行一個Java程序,JVM堆設置為10G,而物理內存只有8G。如果沒有Swap,程序會直接報“OOM(內存溢出)錯誤;有了8G Swap后,系統會把堆中暫時不用的2G數據存到Swap,程序能正常運行。

2.負面影響:堆內存交換頻繁會變慢

如果堆內存數據需要頻繁在物理內存“Swap”之間切換(行業(yè)里叫內存顛簸),程序響應會明顯變慢。因為硬盤/ SSD的讀寫速度,比物理內存慢了幾個數量級(物理內存是GB/s級,機械硬盤是MB/s級,即使是SSD也差10倍以上)。

比如你寫的程序頻繁申請和釋放堆內存,且數據量接近物理內存上限,Swap會反復/堆數據,此時你會發(fā)現程序卡頓、CPU占用率飆升(因為CPU要等數據交換完成)。

四、對存儲速率的影響:別忽視硬盤IO的壓力

Swap本質是用硬盤空間當內存,所以它的讀寫速度完全依賴你的存儲設備,同時也會占用存儲設備的IO資源,影響其他操作:

1.不同存儲介質,影響天差地別

存儲類型

Swap讀寫速度

對系統的影響

機械硬盤(HDD

慢(約50-150MB/s

嚴重占用硬盤IO,同時做文件拷貝、安裝軟件會卡頓,甚至系統整體響應變慢

固態(tài)硬盤(SSD

較快(約500-2000MB/s

影響比HDD小,但頻繁讀寫Swap會消耗SSD擦寫壽命SSD有固定擦寫次數)

nvme固態(tài)硬盤

很快(約3000-7000MB/s

影響最小,接近物理內存速度,適合作為Swap存儲介質

2. Swap使用率過高,整個系統會卡殼

如果Swap使用率超過50%,且持續(xù)上升,說明物理內存已經嚴重不足,系統大部分時間都在搬數據(把物理內存數據寫到Swap,再把Swap數據讀回物理內存),此時:

?打開文件、切換軟件要等很久;

?命令行輸入指令,回車后要延遲幾秒才響應;

?甚至鼠標光標都會卡頓跳幀。

五、實戰(zhàn):Ubuntu下擴充Swap7步詳細教程

Ubuntu系統為例,從查看當前Swap”開機自動生效,每一步都有具體命令和示例,新手也能跟著做(其他Linux發(fā)行版步驟類似,命令通用)。

前置準備

?確保系統有足夠的硬盤/ SSD空間(比如要擴到8G,就需要至少8G空閑空間);

?sudo權限操作(需要管理員密碼)。

步驟1:查看當前Swap大小

先執(zhí)行free -h命令,查看當前Swap的總大小和使用情況(-h表示人類可讀格式,用GB/MB顯示,更直觀):

free-h

執(zhí)行后會看到類似輸出:

       總計    已用    空閑   共享 緩沖/緩存  可用內存:   19Gi   1.2Gi   5.9Gi   3.0Mi   12Gi   17Gi交換:   2.0Gi    0B   2.0Gi

能看到默認Swap2G,這時候如果要擴到8G,繼續(xù)下一步。

步驟2:先關閉現有Swap

擴充前必須關閉當前的Swap(避免數據沖突),執(zhí)行命令:

sudo swapoff -a

輸入管理員密碼后,再用free -h驗證,會發(fā)現交換那一行的總計變成0,說明關閉成功:

交換:     0B     0B     0B

步驟3:創(chuàng)建新的Swap文件

dd命令創(chuàng)建一個指定大小的Swap文件(這里以擴到8G為例),命令如下:

sudoddif=/dev/zero of=/swapfile bs=1G count=8

?解釋一下參數:

?if=/dev/zero:從零設備讀取數據(用來生成空白文件);

?of=/swapfile:把生成的文件保存到根目錄,命名為swapfile;

?bs=1G:每次讀寫的塊大小1G;

?count=8:讀取8次塊,總大小= 1G×8=8G(想擴到16G就把count改成16)。

執(zhí)行后會看到類似輸出,說明文件創(chuàng)建成功:

記錄了8+0的讀入記錄了8+0的寫出8589934592字節(jié)(8.6GB,8.0GiB)已復制,7.04727秒,1.2GB/s

步驟4:設置Swap文件權限(關鍵!)

為了安全,必須把Swap文件的權限設為600——只有root用戶能讀寫,其他用戶沒有權限(防止誤修改或篡改),命令:

sudochmod600 /swapfile

執(zhí)行后沒有輸出,說明權限設置成功。

步驟5:格式化Swap文件

把剛才創(chuàng)建的空白文件格式化為“Swap格式,讓系統能識別為交換空間,命令:

sudo mkswap /swapfile

執(zhí)行后會看到類似輸出,包含SwapUUID(不用管UUID,知道成功就行):

正在設置交換空間版本1,大小=8GiB(8589930496 個字節(jié))標簽,UUID=C27ae28e-a3ea-47fa-ad81-7f4bc779fa8e

步驟6:啟用新的Swap

格式化后,啟用這個新的Swap文件,命令:

sudo swapon /swapfile

再用free -h驗證,會發(fā)現交換的總計變成8G,說明啟用成功:

交換:   8.0Gi    0B   8.0Gi

步驟7:配置開機自啟(避免重啟后失效)

默認情況下,重啟系統后新的Swap會失效,所以要把Swap文件添加到/etc/fstab配置文件中,讓系統開機自動加載。

1.用文本編輯器打開/etc/fstab

sudo nano /etc/fstab

1.在文件末尾添加一行(復制粘貼即可,注意不要寫錯):

/swapfile none swap sw 0 0

1.保存退出:按Ctrl+O(字母O),再按回車確認,最后按Ctrl+X退出編輯器。

這樣重啟系統后,Swap還是8G,不會失效。

六、這些注意事項,新手一定要避開!

1.Swap大小不是越大越好

一般建議Swap大小是物理內存的1-2倍(比如物理內存16G,Swap16-32G);但如果是SSD,不建議超過物理內存(避免頻繁讀寫消耗SSD壽命)。

2.Swap文件別放錯位置

盡量把Swap文件放在空閑空間充足的分區(qū),優(yōu)先選SSD(速度快),別放在機械硬盤的系統分區(qū)(會拖慢系統)。

3.關閉Swap要謹慎

如果系統正在高負載運行(比如有程序在用Swap),突然執(zhí)行swapoff -a會導致程序崩潰,建議在系統空閑時操作。

4.定期檢查Swap使用情況

htopfree -h定期查看Swap使用率,如果長期超過50%,說明物理內存真的不夠用,建議升級內存條(Swap只是應急,不能替代物理內存)。

最后

SwapLinux系統的內存緩沖墊,合理擴充能解決很多內存不足的問題,但也要注意它對堆內存和存儲速率的影響——不要過度依賴Swap,升級物理內存才是根本解決方案。

如果覺得這篇教程有用,歡迎分享給身邊用Linux的朋友~

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11760

    瀏覽量

    219032
  • 內存
    +關注

    關注

    9

    文章

    3210

    瀏覽量

    76369
  • Ubuntu
    +關注

    關注

    5

    文章

    613

    瀏覽量

    33371
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    紅米顯示內存不足怎么處理

    手機上原來就安裝有QQ聊天軟件,現在一打開空間就顯示內存不足,有許多空間的圖片都不及時顯示。這不是壞,但是怎么處理呢。手機本身可以運行的空間就找1G。該怎么擴展呢。失眠了,看手機才想起
    發(fā)表于 03-09 02:12

    淺析linux內存釋放和使用限制

    1、內存運行機制1)物理內存和虛擬內存物理內存就是系統硬件提供的內存大小,是真正的內存,相對于物
    發(fā)表于 07-11 07:50

    RAM內存不足錯誤

    遇到難題一、:RAM內存不足錯誤:一 、將UC/OS III移植到STM32F103C8T6的遇到內存不足的報錯。分析,c8t6系類RAM內存只有20KB。如上圖。在代碼中將heap_size設置成
    發(fā)表于 08-20 08:14

    HFSS軟件內存不足的解決方法

    HFSS軟件內存不足該如何解決?
    的頭像 發(fā)表于 07-15 10:15 ?2.4w次閱讀

    虛擬內存不足的原因

    電腦系統是WinXP,最近使用時,沒開多少程序,卻常常出現虛擬內存不足的系統提示??赡苡幸韵聨讉€原因
    的頭像 發(fā)表于 03-14 14:25 ?3758次閱讀

    虛擬內存不足怎么解決

    電腦的虛擬內存不足以后,很多功能就無法使用了,且會彈出如下所示的頁面。這就說明虛擬內存無法滿足我們的使用需求,就需要咱們對電腦的虛擬內存進行重新設置。那么如何設置呢?請看下文。
    的頭像 發(fā)表于 03-14 14:29 ?1.4w次閱讀

    需要了解Linux swap分區(qū)的擴展

    LinuxSwap(即:交換分區(qū)),類似于Windows的虛擬內存,就是當內存不足的時候,把一部分硬盤
    發(fā)表于 05-15 08:51 ?1802次閱讀
    需要了解<b class='flag-5'>Linux</b> <b class='flag-5'>swap</b>分區(qū)的擴展

    嵌入式LinuxSwap交換區(qū)剖析

    的系統性能指標。這些性能指標中和Swap有關的包括以下幾項:  procs的w  它表示當前(三秒鐘之內)需要釋放內存、交換出去的進程數量
    發(fā)表于 04-02 14:36 ?1078次閱讀

    手機內存不足的清理方法

    很多時候當我們拿起手機時,突然提示我們手機內存不足,無法安裝應用,部分功能受影響,手機最近頻頻提醒內存空間不足,隨著手機使用時間的延長,手機不可避免的越來越臃腫,手機運行速度也是一卡再卡。怎么辦?沒關系,又顯示
    發(fā)表于 05-20 09:49 ?1.1w次閱讀

    電腦和手機的內存不足怎么辦

    如果是電腦內存不足,可以通過任務管理器關閉部分應用程序,也可以在控制面板中調整虛擬內存的大小,還可以通過增加內存容量方式解決。如果是手機運行內存不足,可以一鍵關閉多任務。如果是手機存儲
    發(fā)表于 05-22 09:41 ?2435次閱讀

    虛擬內存不足的解決辦法

    虛擬內存就是當電腦物理內容不夠或者防止運行大型軟件時出現不夠,在系統盤,比如C盤中劃出一個區(qū)域,用來存儲交換數據,類似物理內存的功能,所以就叫虛擬內存。當出現虛擬
    發(fā)表于 05-27 10:19 ?3291次閱讀
    虛擬<b class='flag-5'>內存不足</b>的解決辦法

    電腦內存不足怎么解決win10

    電腦內存大家一定都知道吧,通常我們在用電腦的時候,當我們打開大型的網絡游戲和各種應用的軟件時,如果我們的電腦本身的內存不足,就會使游戲和大型的軟件打開失敗或者是終止。而且電腦內存不足會大大降低電腦
    發(fā)表于 06-12 10:31 ?1525次閱讀

    RAM內存不足的表現及解決方法

    RAM內存不足的表現及解決方法 一、RAM內存不足的表現 系統運行緩慢 當RAM內存不足時,計算機的響應速度會明顯下降,打開程序或文件需要更長的時間。 頻繁的頁面交換(Page Swa
    的頭像 發(fā)表于 11-11 09:53 ?8320次閱讀

    虛擬內存不足如何解決 虛擬內存和物理內存的區(qū)別

    虛擬內存不足的解決方案 虛擬內存不足是計算機用戶經常遇到的問題,尤其是在運行大型軟件或多任務處理時。以下是一些解決虛擬內存不足問題的方法: 增加物理內存(RAM) : 這是最直接的解決
    的頭像 發(fā)表于 12-04 09:14 ?2689次閱讀

    Linux Swap交換空間詳解:Android編譯內存不足?這樣擴充立竿見影

    ? Swap? 交換空間不足在? “ 搞鬼 ” 。今天不僅要帶大家搞懂? Swap? 的核心作用,還會結合? Android? 源碼編譯的實
    的頭像 發(fā)表于 12-06 08:10 ?4255次閱讀