生活随笔
收集整理的這篇文章主要介紹了
linux swap交换分区说明/管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://coolnull.com/3699.html
一.SWAP說明 1.1 SWAP概述 當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數據到內存中。這樣,系統總是在物理內存不夠時,才進行Swap交換。這個是SWAP 交換分區的作用。 實際上,我們更關注的應該是SWAP分區的大小問題。 設置多大才是最優的。
一般來說可以按照如下規則設置swap大小: 4G以內的物理內存,SWAP 設置為內存的2倍。 4-8G的物理內存,SWAP 等于內存大小。 8-64G 的物理內存,SWAP 設置為8G。 64-256G物理內存,SWAP 設置為16G。
實際上,系統中交換分區的大小并不取決于物理內存的量,而是取決于系統中內存的負荷,所以在安裝系統時要根據具體的業務來設置SWAP的值。
1.2 系統在什么情況下才會使用SWAP? 實際上,并不是等所有的物理內存都消耗完畢之后,才去使用swap的空間,什么時候使用是由swappiness 參數值控制。
[root@rhce ~]# cat /proc/sys/vm/swappiness 60 該值默認值是60. swappiness=0的時候表示最大限度使用物理內存,然后才是 swap空間, swappiness=100的時候表示積極的使用swap分區,并且把內存上的數據及時的搬運到swap空間里面。
1.3 如何修改swappiness參數? 臨時修改:
[root@rhce ~]# sysctl vm.swappiness=10 vm.swappiness = 10 [root@rhce ~]# cat /proc/sys/vm/swappiness 10 這里我們的修改已經生效,但是如果我們重啟了系統,又會變成60.
永久修改: 在/etc/sysctl.conf文件里添加如下參數,
vm.swappiness=10 或echo 'vm.swappiness=10' >>/etc/sysctl.conf 保存,重啟,就生效了。二.管理SWAP 2.1 查看系統當前SWAP空間大小
[root@coolnull ~]# free -m total used free shared buffers cached Mem: 1954 1923 31 0 21 1345 -/+ buffers/cache: 555 1399 Swap: 1999 21 1978 free命令默認單位為k, -m 單位為M。 我們這里的swap使用了21M的空間。2.2 查看SWAP使用情況 假設我們的系統出現了性能問題,我們通過vmstat命令看到有大量的swap,而我們的物理內存又很充足,那么我們可以手工把swap空間釋放出來。讓進程去使用物理內存,從而提高性能。
[root@coolnull ~]# vmstat 1 5 procs -----------memory---------- ---swap-------io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 22272 32620 22032 1378312 0 0 33 38 0 41 1 2 96 0 0 0 0 22272 32612 22032 1378340 0 0 0 0 902 1627 0 5 95 0 0 0 0 22272 32612 22032 1378340 0 0 0 0 905 1636 1 8 91 0 0 0 0 22272 32612 22032 1378340 0 0 0 32 907 1616 0 6 94 0 0 0 0 22272 32612 22032 1378340 0 0 0 0 924 1651 0 8 92 0 0 ?2.3 驗證swap狀態,swapon –s等于cat/proc/swaps
[root@coolnull ~]# swapon -s Filename Type Size Used Priority /dev/sda2 partition 2047992 22272 -1 [root@coolnull ~]# cat /proc/swaps Filename Type Size Used Priority /dev/sda2 partition 2047992 22272 -1 這里/dev/sda2是我們在安裝操作系統時劃分的磁盤分區。實際上,我們也可以使用文件來做為交換分區。具體后面會演示。2.4 關閉swap交換分區:
[root@coolnull ~]# swapoff/dev/sda2 [root@coolnull ~]# swapon -s Filename Type Size Used Priority ?2.5 啟用swap分區:
[root@coolnull ~]# swapon /dev/sda2 簡單的說ext分區是否啟用由mount及umount控制。swap分區是否啟動,由swapon及swapoff控制。我們對swap 空間的釋放,也是通過關閉swap分區,在啟動swap 分區來實現的。2.6查看/etc/fstab 文件,swap是否開機啟動在這里配置
[root@coolnull ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Aug 15 00:09:26 2012 # # Accessible filesystems, by reference, aremaintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8)and/or blkid(8) for more info # UUID=beea0820-3ac3-4551-9bf0-1b2a462d3ab4 / ext4 defaults 1 1 UUID=e5ec9543-143f-4e3b-b8a7-4fa05b01836a/boot ext4 defaults 1 2 UUID=b256c0bb-9000-456b-b9eb-18239b5df5ddswap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 ?三. 增加swap空間 3.1 使用文件來作為SWAP 交換分區,這里我們使用文件添加一個交換區,具體操作如下: 在根目錄下生成一個文件:swap-file,大小1G:
[root@coolnull u01]# dd if=/dev/zero of=/swap-file bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 5.91518 s, 182MB/s [root@coolnull u01]# cd / [root@coolnull /]# ls bin cgroup etc lib lost+found misc net proc sbin srv sys u01 usr boot dev home lib64 media mnt opt root selinux swap-file tmp u02 var [root@coolnull /]# ? 修改swap-file文件的權限,聽說是為了增加安全。這里我是不能理解,如果改成只有root可讀寫的話那些非root用戶執行的程序怎么辦
# chown root:root /swap-file
# chmod 0600 /swap-file ? 將生成的文件格式化成交換分區:
[root@coolnull /]# mkswap /swap-file mkswap: /swap-file: warning: don't erase bootbitssectors onwhole disk. Use -f to force. Setting up swapspace version 1, size = 1048572 KiB no label, UUID=653bbeb5-4abb-4295-b110-5847e073140d 這里沒有分區的lable,只有一個UUID。 ? 啟動swap分區并查看狀態:
[root@coolnull /]# swapon /swap-file [root@coolnull /]# swapon -s Filename Type Size Used Priority /dev/sda2 partition 2047992 0 -1 /swap-file file 1048568 0 -2 這里我們就看到了2個swap。
但是這個只對當前有效,如果想下次重啟系統后還繼續有效,需要將配置寫入到/etc/fstab文件中。 在/etc/fstab文件中添加如下內容:
UUID=653bbeb5-4abb-4295-b110-5847e073140d swap swap defaults 0 0 或者: /swap-file swap swap defaults 0 0 ?3.2使用磁盤添加swap 這個后面添加四、停用swap交換分區:
[root@coolnull ~]# swapoff /dev/sda2 //如果是文件則swapoff /swap-file [root@coolnull ~]# swapon -s Filename Type Size Used Priority 附錄: Linux Add a Swap File – Howto Do We Really Still Need Swap Space? Knowledge Base:Is swap space really necessary
?
轉載于:https://www.cnblogs.com/wangmo/p/9475883.html
總結
以上是生活随笔 為你收集整理的linux swap交换分区说明/管理 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。