阿里云云主機swap功能設定實戰案例
阿里雲提供的雲伺服器(elastic compute service,簡稱 ecs),是雲主機的一種,當前採用的虛擬化驅動是xen(這一點可以通過bios vendor和virtual type可以看出)。
預設情況下,阿里云云主機的swap功能是沒有啟用的,原因當然是通過取消swap功能可以降低磁碟io的佔用率來讓使用者購買更多的記憶體、提高磁碟壽命和效能。
交換空間通常是乙個磁碟分割槽(此分割槽在安裝作業系統時,系統通常會預設劃分出一段空間用於交換分割槽,預設將交換空間的大小設定為記憶體的1倍到2倍),也可以是乙個檔案。
阿里當前的做法是:
1.不建立swap分割槽,由映象決定
啟用swap分割槽,確實可以降低記憶體的使用壓力,但並不是長久之計,如果雲主機上執行的應用確實需要較高的記憶體,建議還是購買更多的記憶體。
如何啟用swap分割槽?
步驟如下:
1.檢視當前系統中是否已經啟用swap分割槽(有三種命令)
# top
# free -m
# cat /proc/swaps
filename type size used priority
2.如果沒有啟用swap分割槽功能,則新建乙個專門的檔案用於swap分割槽,建立時間比較長需要耐心等待。
不能使用/data/swap,會報錯
# dd if=/dev/zero of=/data/swap bs=1g count=4
dd: opening `/data/swap': no such file or directory
# dd if=/dev/zero of=/mnt/swap bs=1g count=4
注:此檔案的大小是count的大小乘以bs大小,上面命令的大小是4gb
[root@izwz96l7gxttha3j1hk494z ~]# dd if=/dev/zero of=/mnt/swap bs=1g count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 gb) copied, 71.8305 s, 59.8 mb/s
3.設定交換分割槽檔案:通過mkswap命令將上面新建出的檔案做成swap分割槽
# mkswap /mnt/swap
5.啟用此交換分割槽的交換功能
#swapon /mnt/swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改為 swapon -a
# cat /etc/rc.local 檢視是否存在
6.設定開機時自啟用 swap 分割槽:
需要修改檔案 /etc/fstab 中的 swap 行,新增
/mnt/swap swap swap defaults 0 0
# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
注:/mnt/swap 路徑可以修改,可以根據建立的 swap 檔案具體路徑來配置。
7.再次用命令檢視是否設定成功
# cat /proc/swaps
filename type size used priority
/mnt/swap file 4194300 0 -1
# free -m
total used free shared buffers cached
mem: 3832 2711 1120 0 124 1826
-/+ buffers/cache: 760 3072
swap: 4095 0 4095
如何關閉swap分割槽?
當系統出現記憶體不足時,開啟 swap 可能會因頻繁換頁操作,導致 io 效能下降。如果要關閉 swap,可以採用如下方法。
使用命令 swapoff 關閉 swap
swapoff /mnt/swap
修改 /etc/fstab 檔案,刪除或注釋相關配置,取消 swap 的自動掛載:
swapoff -a >/dev/null
通過 free -m 確認 swap 已經關閉。
阿里云云主機新增swap分割槽與swap效能優化
原始出處 作者資訊和本宣告。否則將追究法律責任。swap的功能與相應核心引數 linux 將物理記憶體分為記憶體段的部分被稱作 頁面 交換是指記憶體頁面被複製到預先設定好的硬碟空間 叫做交換空間 的過程,目的是釋放用於頁面的記憶體。物理記憶體和交換空間的總大小是可用的虛擬記憶體的總量。交換空間通常是...
阿里云云虛擬主機安裝Z BlogPHP
簡介 在阿里雲買了乙個雲虛擬主機,叫共享虛擬主機普惠版,6 塊錢一年。本著練習上手的目的,嘗試在阿里云云虛擬主機上安裝z blogphp,乙個個人建站的cms 系統。雲虛擬主機網頁空間為200m,mysql 空間為20m,支援php。應該還是錯的。第一步 測試訪問雲主機 1.是雲主機的乙個測試頁面。...
設定阿里雲ECS的swap
安裝 gitlab 1 2 3 時碰到的問題。中間出現幾次記憶體分配的問題,其中新增 ssh key 導致 500 錯誤,我 1g 記憶體跑了apache nginx mysql,以為記憶體不夠用,確實不夠用。找了好多,提到減少 unicorn.rb 裡的 worker processes 節省記憶...