您的位置:首頁技術文章
文章詳情頁

詳解Linux中如何釋放交換空間swap

瀏覽:123日期:2023-09-14 20:49:07
目錄一、Linux內存機制簡單介紹二、如何釋放交換內存一、Linux內存機制簡單介紹

直接從物理內存讀寫數據要比從硬盤讀寫數據要快的多(硬盤磁道尋址),因此,我們希望所有數據的讀寫都在內存完成,但是內存大小是有限的,并且內存價格高于硬盤價格,于是就有了物理內存與虛擬內存的概念。

物理內存:系統硬件提供的內存大小,是真正的內存,可用 free -h 查看內存的使用情況。

交換內存Swap:交換內存swap是linux下一個虛擬內存的概念,它是利用磁盤空間虛擬出的一塊邏輯內存,用于解決物理內存容量不足的問題??刹榭磗wapon -s查看交換內存的掛載盤。

二、如何釋放交換內存

1. 設置swappiness值為0,表示盡可能不使用交換內存

(1)臨時設置方案,重啟后不生效

# 設置vm.swappiness為0sysctl vm.swappiness=0# 查看swappiness值cat /proc/sys/vm/swappiness

(2)永久設置方案,重啟后仍然生效

vi /etc/sysctl.conf# 添加vm.swappiness=0

者直接寫入

echo 'vm.swappniess=0'>>/etc/sysctl.conf

2.釋放交換分區

關閉交換分區的前提:

首先要保證內存剩余量要大于等于swap使用量,否則會宕機!因為根據內存機制,swap分區一旦釋放,所有存放在swap分區的文件都會轉存到物理內存上。然后再通過重新掛載swap分區完成釋放swap。

(1)查看內存剩余情況

free -h

(2)查看交換分區的掛載盤

swapon -s

(3)關閉掛載分區(徹底關閉swap)

swapoff /dev/dm-1

注意:前提是swap使用小于空閑內存,足夠將swap內存轉存到物理內存中,否則會宕機

(4)再次查看交換分區的掛載情況

swapon -s

(5)重新開啟swap掛載

如果不想徹底關閉分區,用命令swapon /dev/dm-1(需要換成自己的掛載分區) 打開即可

swapon /dev/dm-1

3.定時釋放交換分區

如果系統內存確實不足,不想禁用交換分區時,可以在2的基礎上改進,設置定時釋放交換分區

(1)查看交換分區的掛載情況

# 查看交換分區掛載的位置,假設此處查看的結果為 /dev/dm-1swapon -s

(2)編寫釋放交換分區的腳本(其實就是將2的步驟組合起來)

#!/bin/bash#關閉所有交換空間,Linux會自動將swap內容轉到內存中swapoff /dev/dm-1#開啟交換空間swapon /dev/dm-1#輸出echo '釋放完畢'

(3)設置定時任務(假設定時文件存放在/home/freeswap.sh)

編寫 /etc/crontab,并添加定時執行腳本的任務

vi /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed# 每天凌晨1點釋放交換空間0 1 * * * root /home/freeswap.sh

到此這篇關于詳解Linux中如何釋放交換空間swap的文章就介紹到這了,更多相關Linux釋放交換空間swap內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Linux
国产综合久久一区二区三区