導航:首頁 > 操作系統 > linuxswap空間

linuxswap空間

發布時間:2024-10-19 11:55:22

❶ redhat linux swap分區擴展的三種方法詳解

redhat linux swap分區擴展的三種方法

swap 介紹:

當物理內存佔用完了後,當系統還需要更多的物理內存時,物理內存中inactive pages ,就move到swap空間。swap 空間是在位於硬碟上的,因此訪問速度較物理內存慢。

當機器的物理內存發生變化時,swap 分區也要做相應的擴展:

有三種方法可以對swap 分區進行擴展:

一、擴展正在使用的swap 分區的邏輯卷(推薦使用此種方式)

二、新建swap 分區,

三、新建swap file,

具體步驟如下:

一、擴展正在使用的swap 分區的邏輯卷

設定用作swap 分區的邏輯卷為:/dev/VolGroup00/LogVol01

Disable swapping for the associated logical volume:

# swapoff -v /dev/VolGroup00/LogVol01

Resize the LVM2 logical volume by 256 MB:

# lvm lvresize /dev/VolGroup00/LogVol01 -L +256M

Format the new swap space:

# mkswap /dev/VolGroup00/LogVol01

Enable the extended logical volume:

# swapon -va

Test that the logical volume has been extended properly:

# cat /proc/swaps 或者# free

二、新建swap 分區

設定新建的swap 分區的邏輯卷為:/dev/VolGroup00/LogVol02

Create the LVM2 logical volume of size 256 MB:

# lvm lvcreate VolGroup00 -n LogVol02 -L 256M

Format the new swap space:

# mkswap /dev/VolGroup00/LogVol02

Add the following entry to the /etc/fstab file:

/dev/VolGroup00/LogVol02 swap swap defaults 0 0

Enable the extended logical volume:

# swapon -va

Test that the logical volume has been extended properly:

# cat /proc/swaps 或者# free

三、新建swapfile

通過此種方式進行swap 的擴展,首先要計算出block的數目。具體為根據需要擴展的swapfile的大小,以M為單位。block=swap分區大小*1024, 例如,需要擴展64M的swapfile,則:block=64*1024=65536.

然後做如下步驟:

dd if=/dev/zero of=/swapfile bs=1024 count=65536

Setup the swap file with the command:

mkswap /swapfile

To enable the swap file immediately but not automatically at boot time:

swapon /swapfile

To enable it at boot time, edit /etc/fstab to include the following entry:

/swapfile swap swap defaults 0 0

After adding the new swap file and enabling it, verify it is enabled by viewing the output of the command cat /proc/swaps 或者 free.

總結:三種方法都能對swap 分區進行擴展,但是推薦使用第一種方法。

❷ Linux中swap交換分區的創建和容量調整的教程

我們都知道在安裝Linux系統時在分區時可以分配swap分區,而系統安裝後(在運行中)如何建立或調整swap分區呢?
在裝完Linux系統之後,建立Swap分區有兩種方法。
1.新建磁碟分區作為swap分區;
2.用文件作為swap分區 (操作更簡單,我更常用)。
下面介紹這兩種方法:(都必須用root許可權,操作過程應該小心謹慎。)

一、新建磁碟分區作為swap分區
1.以root身份進入控制台(登錄系統),輸入

復制代碼

代碼如下:

# swapoff -a #停止所有的swap分區

2. 用fdisk命令(例:# fdisk /dev/sdb)對磁碟進行分區,添加swap分區,新建分區,在fdisk中用t命令將新添的分區id改為82(Linux swap類型),最後用w將操作實際寫入硬碟(沒用w之前的操作是無效的)。

3.
復制代碼

代碼如下:

# mkswap /dev/sdb2 #格式化swap分區,這里的sdb2要看您加完後p命令顯示的實際分區設備名

4.
復制代碼

代碼如下:

# swapon /dev/sdb2 #啟動新的swap分區

5. 為了讓系統啟動時能自動啟用這個交換分區,可以編輯/etc/fstab,加入下面一行

復制代碼

代碼如下:

/dev/sdb2 swap swap defaults 0 0

二、調整swap分區大小
有的時候,我們要增加swap的大來,例如,安裝oracle。下面說一下如何來增加交換分區的大小。

復制代碼

代碼如下:

root@ubuntu:/home/zhangying# free -m
total used free shared buffers cached
Mem: 3449 3256 193 0 723 1687
-/+ buffers/cache: 845 2604
Swap: 254 0 254

復制代碼

代碼如下:

root@ubuntu:/home/zhangying# mkdir swap
root@ubuntu:/home/zhangying# cd swap/
root@ubuntu:/home/zhangying/swap# dd if=/dev/zero of=swaptmp bs=9024 count=100000

記錄了100000+0 的讀入
記錄了100000+0 的寫出
902400000位元組(902 MB)已復制,12.5008 秒,72.2 MB/秒

復制代碼

代碼如下:

root@ubuntu:/home/zhangying/swap# mkswap swaptmp
mkswap: swaptmp: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 881244 KiB
no label, UUID=ed24d0cc-3af5-4278-b41a-df1ab7433f83
root@ubuntu:/home/zhangying/swap# swapon swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3359 90 0 637 1930
-/+ buffers/cache: 791 2657
Swap: 1115 0 1115

這種只是臨時的,如果重起電腦的話,交換分區的大小還是還原成原來的,如果不重起想還原成原來的,看下面的方法。

復制代碼

代碼如下:

root@ubuntu:/home/zhangying/swap# swapoff swaptmp
root@ubuntu:/home/zhangying/swap# rm swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3368 81 0 732 1895
-/+ buffers/cache: 739 2710
Swap: 254 6 248

還有一種情況是這種臨時的swap,變成非臨時的。

復制代碼

代碼如下:

nano /etc/fstab
/home/zhangying/swap/swaptmp swap swap defaults 0 0

注釋:這種啟動的時候自動載入,根載入windows下的硬碟是一樣的,如果swaptmp文件丟失,也無法增加swap的大小。

三、用文件作為Swap分區
1.創建要作為swap分區的文件:增加1GB大小的交換分區,則命令寫法如下,其中的count等於想要的塊的數量(bs*count=文件大小)。

復制代碼

代碼如下:

# dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化為交換分區文件:

復制代碼

代碼如下:

# mkswap /root/swapfile #建立swap的文件系統

3.啟用交換分區文件:

復制代碼

代碼如下:

# swapon /root/swapfile #啟用swap文件

4.使系統開機時自啟用,在文件/etc/fstab中添加一行:

復制代碼

代碼如下:

/root/swapfile swap swap defaults 0 0

新建和增加交換分區用到的命令為:mkswap、swapon等,而想關閉掉某個交換分區則用swapon /dev/sdb2這樣的命令即可。

下面的操作命令演示了用文件作為Swap的操作過程(包括前後的一些檢查)。

復制代碼

代碼如下:

[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095

復制代碼

代碼如下:

[root@jay-linux ~]# cat /etc/fstab
# 已省略與主題無關的部分輸出
/dev/sda3 swap
swap defaults 0 0

復制代碼

代碼如下:

[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe

復制代碼

代碼如下:

[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119

復制代碼

代碼如下:

[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023

復制代碼

代碼如下:

[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0

復制代碼

代碼如下:

[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095

復制代碼

代碼如下:

[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095

復制代碼

代碼如下:

[root@jay-linux ~]# cat /etc/fstab
# 已省略與主題無關的部分輸出
/dev/sda3 swap
swap defaults 0 0

復制代碼

代碼如下:

[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe

復制代碼

代碼如下:

[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119

復制代碼

代碼如下:

[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023

復制代碼

代碼如下:

[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0

復制代碼

代碼如下:

[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095

❸ Linux - Swap

首先,swap是硬碟上的一塊空間。

其次,當內存沒有多餘空間的時候,可以將一部分數據交換到swap空間。也就是將內存中的一部分數據放到硬碟中,並釋放內存空間。這樣,釋放出的內存空間就又可以被利用來存儲其他數據了。

這樣,本來只有4G的內存,如果swap有2G的話,可使用的內存可以認為是6G。

但是,硬碟的速度比內存慢太多太多了。因此swap只是對內存的一種補充,是在內存不足時對內存的擴充,但是不能代替內存使用。

內存不足時, 操作系統 會選擇 最久沒被使用的內存數據 ,交換到swap空間。

注意,交換操作是由操作系統來進行的。

系統在什麼情況或條件下才會使用Swap分區的空間呢? 其實是Linux通過一個參數swappiness來控制的。當然還涉及到復雜的演算法

這個參數值可為 0-100,控制系統 swap 的使用程度。

0告訴內核盡可能的不要將內存數據移到swap中,也即只有在迫不得已的情況下才這么做,而100告訴內核只要有可能,盡量的將內存中不常訪問的數據移到swap中。默認值為 60。注意:這個只是一個權值,不是一個百分比值,涉及到系統內核復雜的演算法

查看當前系統中swappiness的值

修改當前系統中swappiness的值

上面通過sysctl修改的swappiness值在系統重啟後會失效,要想重啟後繼續生效,需要修改配置文件/etc/sysctl.conf,將下面這行修改成10,如果文件中找不到這行的話,在文件末位加上這行就可以了

既然配置swap對桌面系統有幫助,那麼配置多少大小的swap比較合適呢?下面是ubuntu給出的建議:

Linux下有兩種類型的swap空間,swap分區和swap文件,他們有各自的特點:

swap分區上面由於沒有文件系統,所以相當於內核直接訪問連續的磁碟空間,效率相對要高點,但由於swap分區一般安裝系統時就分配好了了,後期要縮減空間和擴容都很不方便。

swap文件放在指定分區的文件系統裡面,所以有可能受文件系統性能的影響,但據說2.6版本以後的內核可以直接訪問swap文件對應的物理磁碟地址,相當於跳過了文件系統直接訪問磁碟,不過如果swap文件在磁碟上的物理位置不連續時,還是會對性能產生不利影響,但其優點就是靈活,隨時可以增加和移除swap文件。

如果配置有多個swap分區或者文件的話,這里將會有多行,每行代表一個正在被系統使用的swap分區或文件,下面是每個欄位的意思:

並不是swap空間佔用多就一定性能下降,真正影響性能是swap in和out的頻率,頻率越高,對系統的性能影響越大,我們可以通過vmstat命令來查看swap in/out的頻率

在添加swap分區前,首先得有一個空閑的分區,如果是一塊新的磁碟,可以用fdisk來創建一個新的分區用於swap。

添加swap文件就簡單多了,也沒有分區操作那麼有風險。

通過如下命令,能查看所有進程的使用swap情況

查看某個進程swap佔用內存大小腳本:

查看所有進程使用swap情況腳本:

閱讀全文

與linuxswap空間相關的資料

熱點內容
如何用路由器訪問公司伺服器 瀏覽:524
dosrd命令 瀏覽:675
玩子君手作解壓丸子 瀏覽:252
php上傳php文件出錯 瀏覽:688
群暉盤陣建ftp子文件夾 瀏覽:546
天空都市伺服器地址 瀏覽:433
c游戲編程入門教程pdf 瀏覽:672
php框架安全 瀏覽:715
夢里和程序員談戀愛 瀏覽:175
特價伺服器什麼意思 瀏覽:379
程序員交接不想接怎麼辦 瀏覽:873
vb文件夾怎麼選擇 瀏覽:118
公眾號驗證碼登陸源碼 瀏覽:524
居民樓用電量與電纜演算法 瀏覽:357
安裝mysql步驟linux 瀏覽:192
模擬器開app卡頓是怎麼回事 瀏覽:432
安卓手機如何將應用安裝到sd卡 瀏覽:1002
調取命令符 瀏覽:720
核酸檢測報告怎麼能加密 瀏覽:96
單片機燒錄是什麼意思 瀏覽:454