Linux 配置交換空間(Swap)解決內存不足

🚀 作者主頁: 有來技術
🔥 開源項目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template
🌺 倉庫主頁: GitCode︱ Gitee ︱ Github
💖 歡迎點贊 👍 收藏 ?評論 📝 如有錯誤敬請糾正!

目錄

    • 前言
    • 1. 🔍 檢查當前交換空間
    • 2. 📂 創建交換文件
    • 3. 🔐 設置文件權限
    • 4. ?? 將文件設置為交換空間
    • 5. ?? 啟用交換空間
    • 6. ? 驗證交換空間
    • 7. 🔄 設置開機自動掛載
    • 8. ?? 調整交換空間使用策略(可選)
    • 注意事項

前言

在 CentOS 系統中,交換空間(Swap)用于在物理內存不足時,臨時將部分數據存儲到硬盤上,以釋放內存供其他進程使用。合理配置交換空間可以提升系統的穩定性和性能。


1. 🔍 檢查當前交換空間

首先,使用 free -h 命令查看當前系統的交換空間使用情況:

free -h

如果輸出中沒有顯示交換空間,說明當前未配置交換空間。

2. 📂 創建交換文件

在 CentOS 中,您可以通過創建交換文件來添加交換空間。假設您希望創建一個 2GB 的交換文件,執行以下命令:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

這將創建一個名為 /swapfile 的 2GB 大小的文件。

交換空間大小建議

通常,交換空間的大小應根據物理內存來配置。常見的配置建議如下:

物理內存 ≤ 4GB:交換空間通常配置為物理內存的兩倍,所以 4GB 內存的服務器應該配置 8GB 的交換空間。
物理內存 > 4GB:交換空間一般配置為物理內存大小加上 2GB,例如 8GB 內存的服務器可以配置 10GB 的交換空間。

3. 🔐 設置文件權限

為確保交換文件的安全性,設置文件權限:

sudo chmod 600 /swapfile

4. ?? 將文件設置為交換空間

使用 mkswap 命令將文件設置為交換空間:

sudo mkswap /swapfile

5. ?? 啟用交換空間

啟用剛剛創建的交換空間:

sudo swapon /swapfile

6. ? 驗證交換空間

再次使用 free -h 命令確認交換空間已成功添加。

---

7. 🔄 設置開機自動掛載

為了在系統重啟后自動啟用交換空間,需要將其添加到 /etc/fstab 文件中:

echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

---

8. ?? 調整交換空間使用策略(可選)

vm.swappiness 參數控制內核將內存頁交換到交換空間的傾向,取值范圍為 0 到 100,默認 60。值越低,表示內核傾向于保留數據在內存中,只有在內存緊張時才使用交換空間。

查看當前值:

cat /proc/sys/vm/swappiness

要臨時修改該值(例如設置為 30):

sudo sysctl vm.swappiness=30

要永久修改,請編輯 /etc/sysctl.conf 文件,添加或修改以下行:

vm.swappiness=30

然后,應用更改:

sudo sysctl -p

---

注意事項

  • 交換空間大小:根據系統的物理內存大小,合理配置交換空間。一般建議交換空間大小為物理內存的 1 到 2 倍,但對于內存較大的系統,交換空間可以適當減少。
  • 性能影響:頻繁使用交換空間可能會導致系統性能下降,因為硬盤的讀寫速度遠低于內存。
  • 交換分區與交換文件:交換分區通常性能更好,但交換文件更靈活,易于調整大小。根據實際需求選擇合適的方式。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70144.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

個人shell腳本分享

在周一到周五做增量備份,在周六周日做完全備份 #!/bin/bash定義變量 SRC“/path/to/source” # 源目錄 BKUP“/backup” # 備份主目錄 FUL“KaTeX parse error: Expected EOF, got # at position 22: …ull" #? 完全備份目錄 INC"BKUP/inc” # 增量備份…

Django 5 實用指南(一)安裝與配置

1.1 Django5的背景與發展 Django 自從2005年由Adrian Holovaty和Simon Willison在 Lawrence Journal-World 新聞網站上首次發布以來,Django 一直是 Web 開發領域最受歡迎的框架之一。Django 框架經歷了多個版本的演進,每次版本更新都引入了新功能、改進了…

百度搜索融合 DeepSeek 滿血版,開啟智能搜索新篇

百度搜索融合 DeepSeek 滿血版,開啟智能搜索新篇 🚀 🔹 一、百度搜索全量接入 DeepSeek 🔹 百度搜索迎來重要升級,DeepSeek 滿血版全面上線!🎉 用戶在百度 APP 搜索后,點擊「AI」即…

RabbitMQ服務異步通信

消息隊列在使用過程中,面臨著很多實際問題需要思考: 1. 消息可靠性 消息從發送,到消費者接收,會經理多個過程: 其中的每一步都可能導致消息丟失,常見的丟失原因包括: 發送時丟失: 生…

【教程】MySQL數據庫學習筆記(七)——多表操作(持續更新)

寫在前面: 如果文章對你有幫助,記得點贊關注加收藏一波,利于以后需要的時候復習,多謝支持! 【MySQL數據庫學習】系列文章 第一章 《認識與環境搭建》 第二章 《數據類型》 第三章 《數據定義語言DDL》 第四章 《數據操…

膠囊網絡動態路由算法:突破CNN空間局限性的數學原理與工程實踐

一、CNN的空間局限性痛點解析 傳統CNN的瓶頸: 池化操作導致空間信息丟失(最大池化丟棄85%激活值)無法建模層次空間關系(旋轉/平移等變換不敏感)局部感受野限制全局特征整合 示例對比: # CNN最大池化示例…

#滲透測試#批量漏洞挖掘#Apache Log4j反序列化命令執行漏洞

免責聲明 本教程僅為合法的教學目的而準備,嚴禁用于任何形式的違法犯罪活動及其他商業行為,在使用本教程前,您應確保該行為符合當地的法律法規,繼續閱讀即表示您需自行承擔所有操作的后果,如有異議,請立即停止本文章讀。 目錄 Apache Log4j反序列化命令執行漏洞 一、…

深入剖析Spring MVC

一、Spring MVC 概述 1. 什么是 Spring MVC? Spring MVC 是基于 Spring 框架的 Web 框架,它實現了 MVC 設計模式,將應用程序分為三個核心部分: Model:封裝應用程序的數據和業務邏輯。 View:負責渲染數據…

機器學習入門-讀書摘要

先看了《深度學習入門:基于python的理論和實踐》這本電子書,早上因為入迷還坐過站了。。 因為里面的反向傳播和鏈式法則特別難懂,又網上搜了相關內容進行進一步理解,參考的以下文章(個人認為都講的都非常好&#xff0…

【AI】mac 本地部署 Dify 實現智能體

下載 Ollama 訪問 Ollama 下載頁,下載對應系統 Ollama 客戶端。或者參考文章【實戰AI】macbook M1 本地ollama運行deepseek_m1 max可以跑deepseek嗎-CSDN博客 dify 開源的 LLM 應用開發平臺。提供從 Agent 構建到 AI workflow 編排、RAG 檢索、模型管理等能力&am…

[實現Rpc] 消息抽象層的具體實現

目錄 具象層 _ 消息抽象的實現 信息的抽象類 實現 JsonMessage JsonRequest & JsonResponse 消息-不同消息分裝實現 實現 Request RpcRequest TopicRequest ServiceRequest Response RpcResponse TopicResponse ServiceResponse 實現 生產工廠 本篇文章繼 …

計算機考研之數據結構:深入解析最大公約數與歐幾里得算法

一、生活中的公約數應用 在日常生活中,經常需要處理"均分分配"問題。例如:要將24塊巧克力和18塊餅干平均分給小朋友,最多能分給幾個小朋友?這就是典型的求最大公約數問題。 二、基本概念詳解 約數與公約數 約數&…

NCHAR_CS和CHAR_CS,導致UNION ALL 時,提示SQL 錯誤 [12704] [72000]: ORA-12704: 字符集不匹配

檢查涉及的數據表和列的字符集設置 -- 查詢表的字符集 SELECT parameter, value FROM nls_database_parameters WHERE parameter LIKE NLS_CHARACTERSET;-- 查詢列的字符集(對于特定表) SELECT column_name, character_set_name FROM all_tab_columns W…

算法之 跳躍游戲

文章目錄 55.跳躍游戲思路參考:56.合并區間 55.跳躍游戲 55.跳躍游戲 靈神思路 思路分析: 兩種思路,思路1是我們可以直接維護當前到達i的時候所能到達的最右的邊界mr,如果i>mr就說明無法到達i,否則就是可以到達;…

在C#中動態訪問對象屬性時,用表達式樹可以獲得高效性能

在C#中如何用表達式樹動態訪問對象屬性的問題。用戶可能已經知道反射的基本用法,但想用表達式樹來提高性能,因為表達式樹編譯后的委托執行速度比反射快。 首先,表達式樹的基本概念。表達式樹允許在運行時構建代碼,并編譯成可執行的…

深入解析 Flutter 性能優化:從原理到實踐

深入解析 Flutter 性能優化:從原理到實踐的全面指南 Flutter 是一個高性能的跨平臺框架,但在開發復雜應用時,性能問題仍然可能出現。性能優化是開發高質量 Flutter 應用的關鍵。本篇博客將從 Flutter 的渲染原理出發,結合實際場景…

使用 Python 爬蟲獲取微店快遞費用 item_fee API 接口數據

在電商運營中,快遞費用是影響商家利潤和用戶體驗的重要因素之一。微店作為國內知名的電商平臺,提供了豐富的 API 接口供開發者使用,其中也包括查詢商品快遞費用的接口。通過調用微店的 item_fee 接口,開發者可以獲取指定商品的快遞…

MySQL基本操作——包含增刪查改(環境為Ubuntu20.04,MySQL5.7.42)

1.庫的操作 1.1 創建數據庫 語法: 說明: 大寫的表示關鍵字 [] 是可選項 CHARACTER SET: 指定數據庫采用的字符集 COLLATE: 指定數據庫字符集的校驗規則 1.2 創建案例 創建一個使用utf8字符集的db1數據庫 create database db1 charsetutf8; …

Spring Boot 定時任務:輕松實現任務自動化

在現代應用開發中,定時任務是一個常見的需求。比如,我們可能需要定時清理過期數據、定時發送郵件通知等。 操作流程 開啟定時任務注解 在啟動類添加注解EnableScheduling 設置時間(固定時間間隔) 使用 Scheduled 注解創建定時…

七星棋牌全開源修復版源碼解析:6端兼容,200種玩法全面支持

本篇文章將詳細講解 七星棋牌修復版源碼 的 技術架構、功能實現、二次開發思路、搭建教程 等內容,助您快速掌握該棋牌系統的開發技巧。 1. 七星棋牌源碼概述 七星棋牌修復版源碼是一款高度自由的 開源棋牌項目,該版本修復了原版中的多個 系統漏洞&#…