詳解Linux中如何釋放交換空間swap
一、Linux內(nèi)存機制簡單介紹
直接從物理內(nèi)存讀寫數(shù)據(jù)要比從硬盤讀寫數(shù)據(jù)要快的多(硬盤磁道尋址),因此,我們希望所有數(shù)據(jù)的讀寫都在內(nèi)存完成,但是內(nèi)存大小是有限的,并且內(nèi)存價格高于硬盤價格,于是就有了物理內(nèi)存與虛擬內(nèi)存的概念。
物理內(nèi)存:系統(tǒng)硬件提供的內(nèi)存大小,是真正的內(nèi)存,可用 free -h 查看內(nèi)存的使用情況。
交換內(nèi)存Swap:交換內(nèi)存swap是linux下一個虛擬內(nèi)存的概念,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存,用于解決物理內(nèi)存容量不足的問題??刹榭磗wapon -s查看交換內(nèi)存的掛載盤。
二、如何釋放交換內(nèi)存
1. 設(shè)置swappiness值為0,表示盡可能不使用交換內(nèi)存
(1)臨時設(shè)置方案,重啟后不生效
# 設(shè)置vm.swappiness為0 sysctl vm.swappiness=0 # 查看swappiness值 cat /proc/sys/vm/swappiness
(2)永久設(shè)置方案,重啟后仍然生效
vi /etc/sysctl.conf # 添加 vm.swappiness=0
者直接寫入
echo 'vm.swappniess=0'>>/etc/sysctl.conf
2.釋放交換分區(qū)
關(guān)閉交換分區(qū)的前提:
首先要保證內(nèi)存剩余量要大于等于swap使用量,否則會宕機!因為根據(jù)內(nèi)存機制,swap分區(qū)一旦釋放,所有存放在swap分區(qū)的文件都會轉(zhuǎn)存到物理內(nèi)存上。然后再通過重新掛載swap分區(qū)完成釋放swap。
(1)查看內(nèi)存剩余情況
free -h

(2)查看交換分區(qū)的掛載盤
swapon -s

(3)關(guān)閉掛載分區(qū)(徹底關(guān)閉swap)
swapoff /dev/dm-1
注意:前提是swap使用小于空閑內(nèi)存,足夠?qū)wap內(nèi)存轉(zhuǎn)存到物理內(nèi)存中,否則會宕機
(4)再次查看交換分區(qū)的掛載情況
swapon -s
(5)重新開啟swap掛載
如果不想徹底關(guān)閉分區(qū),用命令swapon /dev/dm-1(需要換成自己的掛載分區(qū)) 打開即可
swapon /dev/dm-1
3.定時釋放交換分區(qū)
如果系統(tǒng)內(nèi)存確實不足,不想禁用交換分區(qū)時,可以在2的基礎(chǔ)上改進,設(shè)置定時釋放交換分區(qū)
(1)查看交換分區(qū)的掛載情況
# 查看交換分區(qū)掛載的位置,假設(shè)此處查看的結(jié)果為 /dev/dm-1 swapon -s
(2)編寫釋放交換分區(qū)的腳本(其實就是將2的步驟組合起來)
#!/bin/bash #關(guān)閉所有交換空間,Linux會自動將swap內(nèi)容轉(zhuǎn)到內(nèi)存中 swapoff /dev/dm-1 #開啟交換空間 swapon /dev/dm-1 #輸出 echo "釋放完畢"
(3)設(shè)置定時任務(假設(shè)定時文件存放在/home/freeswap.sh)
編寫 /etc/crontab,并添加定時執(zhí)行腳本的任務
vi /etc/crontab
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=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
到此這篇關(guān)于詳解Linux中如何釋放交換空間swap的文章就介紹到這了,更多相關(guān)Linux釋放交換空間swap內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux使用traceroute來進行網(wǎng)絡(luò)診斷分析
在Linux系統(tǒng)下,traceroute是一個網(wǎng)絡(luò)診斷工具,用于追蹤一個數(shù)據(jù)包從源點到目的地所經(jīng)過的路由路徑,它通過向目的地發(fā)送一系列的 UDP 或 ICMP 數(shù)據(jù)包,并記錄每個數(shù)據(jù)包所經(jīng)過的路由器,來顯示數(shù)據(jù)包到達目的地的路徑,本文介紹了Linux如何使用traceroute來進行網(wǎng)絡(luò)診斷分析2025-03-03
Centos7.3安裝部署最新版Zabbix3.4的方法(圖文)
這篇文章主要介紹了Centos7.3安裝部署最新版Zabbix3.4的方法(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

