網站首頁 編程語言 正文
在Linux下禁用、添加|修改Swap分區(虛擬內存)教程
swap分區
linux內存通過 virtual memory 虛擬內存來管理整個內存, 虛擬內存管理著物理內存,也管理著swap交換空間。Linux使用交換空間來增加主機可用的虛擬內存量。
Swap分區,即交換區,Swap空間的作用可簡單描述為:當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數據到內存中。
我們一般所說的swap,指的是一個交換分區或文件。在Linux上可以使用swapon -s
命令查看當前系統上正在使用的交換空間有哪些,以及相關信息。
從功能上講,交換分區主要是在內存不夠用的時候,將部分內存上的數據交換到swap空間上,以便讓系統不會因內存不夠用而導致oom或者更致命的情況出現。
Linux Swap 分區大小選擇
Linux Swap 分區大小跟你服務器本身的物理內存大小有關,內存越大,設置的 Swap 分區也應該越大,兩者的關系如下。
物理內存 交換分區(SWAP)
<= 4g 至少 4G
4~16G 至少 8G
16G~64G 至少 16G
64G~256G 至少 32G
swappiness
/proc/sys/vm/swappiness
這個文件,可以用來調整跟swap相關的參數。這個文件的默認值是60,可以的取值范圍是0-100。
這個文件的值用來定義內核使用swap的積極程度:
- 值越高,內核就會越積極的使用swap;
- 值越低,就會降低對swap的使用積極性。
- 如果這個值為0,那么內存在free和file-backed使用的頁面總量小于高水位標記(high water mark)之前,不會發生交換。
Linux下禁用swap分區
- 第一步,關閉 swap 分區
關閉 swap 分區,如果無法關閉 Swap 分區,那可能是因為物理內存當前用量 + Swap 分區當前用量已經超過了物理內存的總大小,我們可以先重啟服務器,在機器剛啟動的時候關閉 Swap 分區。
執行完命令,建議多等一會~
swapoff -a
- 修改配置文件
修改配置文件,—注釋"/dev/mapper/centos_master-swap swap"一行
vim /etc/fstab
- 確認swap已經關閉
檢查 SWAP 狀態, —Swap一行全部為0則為關閉狀態,若都顯示 0 則表示關閉成功
[root@dev logs]# free -h
total used free shared buff/cache available
Mem: 15G 5.3G 284M 822M 9G 8.9G
Swap: 0B 0B 0B
[root@dev logs]#
- 調整 swappiness 參數
echo 0 > /proc/sys/vm/swappiness # 臨時生效
永久生效
vim /etc/sysctl.conf
修改 vm.swappiness 的修改為 0
vm.swappiness=0
使配置生效sysctl -p
在Linux下添加|修改Swap分區
在Linux下添加|修改Swap分區(虛擬內存)教程
參考URL: https://www.liujason.com/old-blog/2832.html
第一步,確認是否添加過swap分區
為了防止出現任何以外,請先看一下內存中是否已經有swap:
free -m
一般情況下運行命令后會出現如下的內容:
total used free shared buffers cached
Mem: 1840 1614 226 15 36 1340
-/+ buffers/cache: 238 1602
Swap: 0 0 0
如果你看到 Swap 分區中是0的話,那么就可以接著看第二步
如果不是的話說明你已經有了swap分區,你可以通過下面的命令查看swap文件:
# swapon -s
Filename Type Size Used Priority
/swap.img file 4194300 104448 -2
第二步,創建Swap分區
mkdir /swap
cd /swap
使用dd來創建一個空的swap文件(120G 2048*60為例):
dd if=/dev/zero of=/swap/swapfile count=122880 bs=1M
原文鏈接:https://blog.csdn.net/inthat/article/details/107211445
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-07-06 C語言深入探究水仙花數與變種水仙花數代碼_C 語言
- 2023-04-20 npm ERR! 400 Bad Request - PUT xxx - Cannot publis
- 2022-07-26 Go利用反射reflect實現獲取接口變量信息_Golang
- 2022-08-17 Python字典查找數據的5個基礎操作方法_python
- 2022-11-20 使用Docker部署openGauss國產數據庫的操作方法_docker
- 2023-01-20 Go語言實現定時器的原理及使用詳解_Golang
- 2022-09-10 golang之數組切片的具體用法_Golang
- 2023-04-08 react中實現拖拽排序react-dnd功能_React
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支