Linux交換分區的創建和調整

概述

本文對swap進行簡要介紹,以及系統安裝后(在運行中)如何建立或調整swap分區。

文中演示環境為:

Linux交換分區的創建和調整


什么是swap space?

交換分區,即swap space。它將某段磁盤空間獨立劃分出來,當物理內存不夠的情況下,系統先把物理內存中暫時不用的數據,暫存到交換空間,騰出內存空間來,以保證程序的運行;當swap中存儲的頁面被訪問到時,系統會將其重新載入到物理內存中去運行。在Windows、Unix、Linux系統中都有交換分區的概念。


怎么分配swap space?

作為系統物理內存的補充,交換分區的操作即是磁盤I/O的操作,我們應當盡可能地利用更高I/O的硬盤劃分交互分區。優先考慮的是固態硬盤,而對于機械硬盤來說,前面的磁盤要比后面的快,因此優先使用靠前的扇區劃分swap。

另外,Swap分區的數量對性能也有很大的影響。如果有多個Swap交換區,Swap空間的分配會以輪流的方式操作于所有的Swap,這樣會大大均衡IO的負載,加快Swap交換的速度。如果只有一個交換區,所有的交換操作會使交換區變得很忙,使系統大多數時間處于等待狀態,效率很低。


分配多少swap space?

分配太多的Swap空間會浪費磁盤空間,而Swap空間太少,則系統會發生錯誤。如果系統的物理內存用光了,系統就會跑得很慢,但仍能運行;如果Swap空間用光了,那么系統就會發生錯誤。例如,Web服務器能根據不同的請求數量衍
生出多個服務進程(或線程),如果Swap空間用完,則服務進程無法啟動,通常會出現“application is out of
memory”的錯誤,嚴重時會造成服務進程的死鎖。因此Swap空間的分配是很重要的。

通過翻查《 Red Hat Enterprise Linux 7 Installation Guide 》,看到紅帽官方推薦的分配方案:

Linux交換分區的創建和調整

生產環境中不應開啟休眠(hibernation),所以不需要考慮第三列,即:

  •             內存小于 2GB時,推薦swap大小為內存2倍;

  •             內存 2 ~ 8GB時,推薦swap大小等于內存大?。?/strong>

  •             內存 8 ~64GB時,推薦swap大小為內存的0.5;

  •             內存大于64GB時,則視服務器的工作負載配置。

如果您的系統資源允許的話,增加交換空間可能會導致更好的性能。


如何查看swap space?

Linux中,系統提供了三種方法可以查看系統的swap的分區情況:

      • cat /proc/swaps

      • swapon -s

      • free

Linux交換分區的創建和調整


如何劃分和增加swap space?

我們都知道在安裝Linux系統時在分區時可以分配swap分區,而系統安裝后(在運行中)如何建立或調整swap分區呢?

在裝完Linux系統之后,建立Swap分區基本設置包括:

  •         創建交換分區或者文件

  •         使用mkswap寫入特殊簽名

  •         在/etc/fstab文件中添加適當的條目

  •         使用swapon -a 激活交換空間

swap分區的操作必須用root權限,操作過程應該小心謹慎。

為了避免不必要的問題,我們先停止所有的swap分區

[root@IP70-CentOS7 ~]# >>swapoff -a         #停止所有的swap分區

Linux交換分區的創建和調整

1. 創建交換分區或者文件

建立swap有兩種方法:a.新建磁盤分區;b.用文件作為swap分區。

a.新建磁盤分區:

用fdisk命令(例:# fdisk /dev/sdb),新建大小2GB分區,在fdisk中用“t”命令調整分區類型為82(Linux swap類型),最后w保存fdisk操作。

1472531988614299.png

b.用文件作為swap分區:

用dd命令創建分區文件,文件大小可以通過指定選項進行設置。(bs*count=文件大?。?/span>

[root@IP70-CentOS7 ~]# >> dd if=/dev/zero of=/root/swap bs=1M count=2048

Linux交換分區的創建和調整

2. 使用mkswap寫入特殊簽名(格式化swap分區)

mkswap是專門用于設置Linux swap分區的命令,命令格式是mkswap [options] device [size]

Linux交換分區的創建和調整

3. 在/etc/fstab文件中添加適當的條目

Linux交換分區的創建和調整

4. 使用swapon -a 激活交換空間

Linux交換分區的創建和調整

多個swap分區是有優先級(Priority)的,數值大,則優先使用。我們可以通過swapon的-p選項調整swap的優先級,優化swap性能:分布存放,高性能磁盤存放。

需要注意的是:修改后,需要swapoff禁用,再swapon進行重新掛載。



結束語

雖然swap分區能夠作為"虛擬"的內存,但它的速度比物理內存可是慢多了,因此如果需要更快的速度的話,并不能寄厚望于swap,最好的辦法仍然是加大物理內存。swap分區只是臨時的解決辦法.

原創文章,作者:昭其,如若轉載,請注明出處:http://www.www58058.com/42130

(3)
昭其昭其
上一篇 2016-08-30
下一篇 2016-08-30

相關推薦

  • nginx服務

      Nginx 提供web服務,也是工作在應用層的負載均衡器,擁有強大的緩存能力。 本章主要學習,web server、web reverse proxy(http)和cache 緩存服務器使用較多的是varnish+squid: 任何緩存都是反向代理,但是varnish反向代理能力還是與nginx有很大差距。所以,varnish還是做緩存服務,而…

    Linux干貨 2016-11-01
  • Linux系統上的文件處理工具

    Linux系統上的文件處理工具 我們都知道在計算機中,存在大量的文件,這些文件中包含大量的信息??墒怯行r候,為了工作的效率,我們在茫茫信息中提取出我們所需要的信息,這樣的技能就顯得尤為重要。Linux系統上為我我們提供了多種多樣的文本處理工具,下面我們來簡單說一下。 查看文件內容我們可以使用less命令,cat命令,more命令等等 cat cat [OP…

    Linux干貨 2016-08-05
  • 第四周作業

    正則表達式練習

    Linux干貨 2017-12-25
  • Linux啟動過程及系統初始化

    一、前言     服務器在正常的運行過程中,很少有重啟的機會。在正常的情況下,也很少有出現啟動異常的情況,但是在遭到了人為或者誤操作的情況后,可能會出現啟動異常的情況。為了加深學習系統啟動流程,能夠更加深入理解Linux系統的啟動流程??偨Y了這篇文字。 二、簡述啟動流程     …

    Linux干貨 2016-11-23
  • linux 學習筆記

    第二周

    Linux干貨 2018-03-16
  • MHA

    1.關于MHA MHA是一款開源的mysql的高可用程序,它為mysql主從復制架構提供了automating master failover功能。MHA在監控到master節點故障時,會提升其中擁有最新數據的slave節點成為新的master節點,在此期間,MHA會通過與其他從節點獲取額外的信息來避免不一致性的問題。MHA還提供了master節點的在線切換…

    2016-11-26
欧美性久久久久