在實際的生產環境中,實際的物理內存咱們常常會以爲不夠用,增長物理內存的成本又比較高,一種折中方案就出來了,使用硬盤的一部分空間來作Swap(windows 下叫虛擬內存),將系統內非活動內存換頁到 SWAP,以提升系統可用內存。固然在一些特殊應用(elasticsearch)的話是建議不要使用swap,會致使應用的處理能力都大幅度下降。windows
# 預留物理空間 fallocate -l 4G /swapfile #fallocate 比較快點 咱們也能夠用dd命令 dd if=/dev/zero of=/swapfile bs=1M count=4096 # 設置交換區(swap area)。 mkswap /swapfile # 更改swap權限 chmod 600 /swapfile
# 啓用swap swapon /swapfile # 查看已經啓用的swap swapon -s # 開機自啓swap 分區 vi + /etc/fstab # 在文件/etc/fstab 添加如下內容 /swapfile swap swap defaults 0 0 # 啓動啓用 swap vi + /etc/rc.local #在文件/etc/rc.local 添加 swapon -a # 修改 swappiness 參數 在 Linux 系統中,能夠經過查看 /proc/sys/vm/swappiness 內容的值來肯定系統對 SWAP 分區的使用原則。當swappiness 內容的值爲 0 時,表示最大限度地使用物理內存,物理內存使用完畢後,纔會使用 SWAP 分區。當swappiness 內容的值爲 100 時,表示積極地使用 SWAP 分區,而且把內存中的數據及時地置換到 SWAP 分區。 默認值爲 0,表示須要在物理內存使用完畢後纔會使用 SWAP 分區: ## 查看默認的swappiness參數 cat /proc/sys/vm/swappiness ## 臨時修改 sysctl -w vm.swappiness=10 ## 永久修改 vi + /etc/sysctl.conf # 添加 vm.swappiness=10 ## 讓配置生效 sysctl -p
# 關閉使用swap swapoff /swapfile 刪除 /etc/fstab 配置行/swapfile swap swap defaults 0 0 刪除配置 /etc/rc.local 配置行 swapon -a 刪除配置 /etc/sysctl.conf 配置行 vm.swappiness=10 並使用 sysctl -p 讓配置生效 # 刪除swap分區 rm -f /swapfile