2015年2月5日 星期四

Arch swap心得

某天裝完docker後忽然發現我電腦沒有配置swap,所以來研究一下如何配置swap

查swap狀態:
$ swapon -s  # 因為swap不是 filesystem( 如ext3 ),因此不能用df -h查到他
$ free -mh

Swap partition

# mkswap /dev/sda2 16777216
mkswap: /dev/sda2: warning: wiping old swap signature.
Setting up swapspace version 1, size = 16777216 KiB
no label, UUID=81b2c757-50c8-4ef3-919f-ca9f94be77ba
警告:所有在/dev/sda2 partition的資料將會遺失

ps.
swap 大小要設多大?
通常是2倍的記憶體大小,或 [(2 x RAM) + 1 MB] = Swap File Size。
Red Hat建議的最小設定
物理内存交换分区(SWAP)
<= 4G至少2G
4~16G至少4G
16G~64G至少8G
64G~256G至少16G
ps 我的電腦RAM是8GB,所以swap 設16777216 是1024*1024*16( 16 GB)

UUID會自動產生,或 使用-U flag去指定UUID
# mkswap -U custom_UUID /dev/sda2
ex.
# mkswap -U 81b2c757-50c8-4ef3-919f-ca9f94be77ba /dev/sda2 16777216
啟用swap
# swapon /dev/sda2

啟用swap當開機後
1. 編輯 /etc/fstab
2. 在最後面加入這行
/dev/sda2 none swap defaults 0 0

Swap file creation

例:產生一個512MB的swap檔案
# fallocate -l 512M /swapfile

# dd if=/dev/zero of=/swapfile bs=1M count=512 #我用這個
設定正確的權限
# chmod 600 /swapfile
設成swap格式
# mkswap /swapfile
啟用swap檔案
# swapon /swapfile
啟用swap當開機後
1. 編輯 /etc/fstab
2. 在最後面加入這行
/swapfile none swap defaults 0 0
注意:
我原本參考鳥哥的方式把swapfile放到 /tmp/swapfile這 ,但是swapon時出現錯誤。
swapon: swapfile: swapon failed: Invalid argument
原因:
So "Invalid argument" should be read as "Your filesystem do not support swap file"
檢查:
# df -h -T  # -T, --print-type print file system type
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       30G   22G  6.5G  77% /
dev            devtmpfs  3.9G     0  3.9G   0% /dev
run            tmpfs     3.9G  960K  3.9G   1% /run
tmpfs          tmpfs     3.9G   49M  3.9G   2% /dev/shm
tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs          tmpfs     3.9G  136K  3.9G   1% /tmp
/dev/sda5      ext4       15G  3.0G   11G  22% /srv
/dev/sda7      ext4      200G   93G   97G  50% /home
tmpfs          tmpfs     789M  4.0K  789M   1% /run/user/1001
tmpfs大概不支持swap file ,所以把他放在根目錄的ext4下面

移除swap

關掉swap
# swapoff -a
移除swap 檔案
# rm -f /swapfile

liunx(btrfs,ext3,ext4,jfs,reiserfs,xfs)文件系统比较
結論:
linux中比较推荐的文件系统是ext4, xfs两种。大量文件存储用xfs小规模文件密集使用用ext4。在特定情况下,可以使用btrfs(它的特性非常全)或者jfs(小文件操作慢,但是随机读写快)。兼容考量下,可以用ext3。不推荐使用reiser4。

參考資料:
https://wiki.archlinux.org/index.php/swap
http://linux.vbird.org/linux_basic/0230filesystem.php#swap
http://superuser.com/questions/16280/swap-partition-size-for-4gb-ram #swap要設多大
http://www.cyberciti.biz/tips/linux-swap-space.html # Red Hat建議swap最小要設多大
http://superuser.com/questions/539287/swapon-failed-invalid-argument-on-a-linux-system-with-btrfs-filesystem # Invalid argument 錯誤解釋
http://wenku.baidu.com/view/4c18863543323968011c92f7.html # liunx(btrfs,ext3,ext4,jfs,reiserfs,xfs)文件系统比较

沒有留言:

張貼留言