swapon和swapoff命令詳解

  

基礎命令學習目錄首頁html

 

原文連接:https://blog.csdn.net/yexiangCSDN/article/details/83182259linux

swapon命令用於激活Linux系統中交換空間,Linux系統的內存管理必須使用交換區來創建虛擬內存。vim

語法

swapon(選項)(參數)

選項

  1.  
    -a:將/etc/fstab文件中全部設置爲swap的設備,啓動爲交換區;
  2.  
    -h:顯示幫助;
  3.  
    -p <優先順序>:指定交換區的優先順序;
  4.  
    -s:顯示交換區的使用情況;
  5.  
    -V:顯示版本信息。

參數

交換空間:指定須要激活的交換空間,能夠是交換文件和交換分區,若是是交換分區則指定交換分區對應的設備文件。緩存

實例

  1.  
    mkswap -c /dev/hdb4 (-c是檢查有無壞塊)
  2.  
    swapon -v /dev/hdb4
  3.  
    swapon -s
  4.  
    Filename type Size Used Priority
  5.  
    /dev/hda5 partition 506008 96 -1
  6.  
    /dev/hdb4 partition 489972 0 -2

 

swapoff命令用於關閉指定的交換空間(包括交換文件和交換分區)。swapoff實際上爲swapon的符號鏈接,可用來關閉系統的交換區。網絡

語法

swapoff(選項)(參數)

選項

-a:關閉配置文件「/etc/fstab」中全部的交換空間。

參數

交換空間:指定須要激活的交換空間,能夠是交換文件和交換分區,若是是交換分區則指定交換分區對應的設備文件。app

實例

關閉交換分區post

swapoff /dev/sda2

 

擴展知識:利用swapoff和swapon刷新swap緩存性能

有時運行大量的進程後swap大量佔用,達到30%的話機器會變得很慢

能夠用如下兩個命令清除刷新swap

swapoff -a
swapon -a

這樣swap就還原到初始狀態

如下是設置swap優先級的方法

swappiness
Ubuntu Feisty默認的vm.swappiness值是60,這一默認值已經很合適了。但你能夠改小一些下降swap的加載,系統性能會有一點點的提高
輸 入:
 學習

sysctl -q vm.swappinessurl


你會看到值是60, 更改:
 

sudo sysctl vm.swappiness=10


這 樣你就將值由60改成10,這能夠大大下降系統對於swap的寫入,建議內存爲512m或更多的朋友採用此方法。如你你發現你對於swap的使用極少,可 以將值設爲0。這並不會禁止你對swap的使用,而是使你的系統對於swap的寫入儘量的少,同時儘量多的使用你的實際內存。這對於你在切換應用程序 時有着巨大的做用,由於這樣的話它們是在物理內存而非swap分區中。
若是你想永久得改變這一值,你須要更改 sysctl.conf 文件:
 

vim /etc/sysctl.conf


添加:
vm.swappiness=10
到末行,須要重啓生效。
我發現對 於個人1G內存,將此值設爲5是最合適的。

 

 

例:啓用交換分區/dev/sda5。

[root@rhel ~]# swapon /dev/sda5

例:啓用交換文件/swapfile。

[root@rhel ~]# swapon /swapfile

 

 

   swapon 是開啓swap.
  相對的,便有一個關閉swap的指令,swapoff.

擴展資料一:linux系統swap分區

swap分區是必須有的,首先,它是日誌文件系統得以發揮做用的依賴,在系統意外關閉的狀況下,靠它來保存系統中的數據。其次,在運行一些比較耗內存的程序的時候(好比p2p下載),也要用到它。在這兩種狀況以外,swap分區處於一種閒置狀態,好比:
# free
             total       used       free     shared    buffers     cached
Mem:        451436     213772     237664          0       6748     114248
-/+ buffers/cache:      92776     358660
Swap:       514040          0     514040
這種狀況是一般的情形,但咱們不能所以忽視交換分區的重要做用。linuxso.com

個人兩塊硬盤各有一個swap分區,幾個Linux共享這兩個swap區,但用swapon -s檢查swap分區時發現少了一個。因而運行:
# mkswap -c /dev/hdb4 (-c是檢查有無壞塊)
# swapon -v /dev/hdb4
而後正常了:
# swapon -s
Filename                                Type            Size    Used    Priority
/dev/hda5                               partition       506008 96      -1
/dev/hdb4                               partition       489972 0       -2

因爲系統創建的方式各異,交換分區有時候徹底不須要手工mkswap和swapon(如正常的光盤安裝或者網絡安裝),但有的時候須要簡單地弄一下(好比借腹生子式的系統創建方式),若是syslog上面出現:
mkswap /dev/hdb4 : Invalid argument 提示的時候,就須要經歷一個mkswap的過程才行

擴展資料二:簡述建立swap虛擬內存的過程

大概步驟吧:
1.新建一個分區 用fdisk /dev/sda 進去去new一個分區 具體很少說了 w保存
而後partprobe 從新讀入分區表
2.假設剛剛新建的分區爲 /dev/sda6
那麼mkswap /dev/sda6
3.swapon /dev/sda6 這樣就能夠了啊
用free 查看一下 就能看到虛擬內存增長了
用文件來增大虛擬內存也是同樣的道理

 

 

範例1: 顯示分區信息。

[root@hnlinux ~]# sfdisk -l //顯示分區信息

Disk /dev/sda: 1305 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

  Device Boot Start   End  #cyls  #blocks  Id System
/dev/sda1  *   0+   12   13-  104391  83 Linux
/dev/sda2     13  1304  1292  10377990  8e Linux LVM
/dev/sda3     0    -    0     0  0 Empty
/dev/sda4     0    -    0     0  0 Empty

Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition
No partitions found
[root@hnlinux ~]#


範例2: 關閉交換分區。

[root@hnlinux ~]# swapoff /dev/sda2 // 關閉交換分區
[root@hnlinux ~]#

擴展知識:利用swapoff和swapon刷新swap緩存

有時運行大量的進程後swap大量佔用,達到30%的話機器會變得很慢

能夠用如下兩個命令清除刷新swap

swapoff -a
swapon -a

這樣swap就還原到初始狀態

如下是設置swap優先級的方法

swappiness
Ubuntu Feisty默認的vm.swappiness值是60,這一默認值已經很合適了。但你能夠改小一些下降swap的加載,系統性能會有一點點的提高
輸 入:
 

sysctl -q vm.swappiness


你會看到值是60, 更改:
 

sudo sysctl vm.swappiness=10


這 樣你就將值由60改成10,這能夠大大下降系統對於swap的寫入,建議內存爲512m或更多的朋友採用此方法。如你你發現你對於swap的使用極少,可 以將值設爲0。這並不會禁止你對swap的使用,而是使你的系統對於swap的寫入儘量的少,同時儘量多的使用你的實際內存。這對於你在切換應用程序 時有着巨大的做用,由於這樣的話它們是在物理內存而非swap分區中。
若是你想永久得改變這一值,你須要更改 sysctl.conf 文件:
 

vim /etc/sysctl.conf


添加:
vm.swappiness=10
到末行,須要重啓生效。
我發現對 於個人1G內存,將此值設爲5是最合適的。

 

3 、實例

關閉全部的交換分區

[root@localhost ~]#  swapoff  a         // 關閉全部交換分區

[root@localhost ~]#  free                // 查看內存使用狀態

             total       used       free     shared   buffers     cached

Mem:       1659316     678908     980408          0      85608     369308

-/+ buffers/cache:     223992    1435324

Swap:            0          0          0          //swap 分區不使用

相關文章
相關標籤/搜索