国产欠欠自拍激情一集黄片_亚洲日产中文字幕无码_伊伊综合网在线视频免费_中文国产剧情演绎丝袜美腿_亚州欧美成人影院_啊啊啊不要舔了要喷水了_中文字幕 无码 一区二区_五月天导航AV色成人五月天伊人

如何給LINUX服務器分配SWAP分區

服務器硬盤

LINUX服務器SWAP分區就是交換分區,它類似于WINDOWS的虛擬內存,當服務器內存不足的時候,系統自動把一部分硬盤空間虛擬成內存使用,從而解決內存容量不足的情況。當然服務器也允許自動設置SWAP分區的使用策略,這個后面會提到。既然是相當于虛擬內存,如果你的服務器內存確實不足并經常因此而產生程序錯誤進而導致數據庫或PHP解析服務異常停止,那么可以考慮通過分配一個合適的SWAP分區來緩解。

SWAP分區的大小

說到分配SWAP分區,首先必然要考慮多大的空間合適。早期服務器的內存偏小,以致于一般教科書上都是建議SWAP分區大小設為物理內存的兩倍,但對于服務器內存動不動就是32G、64G甚至128G的今天,這種設置建議已然不合適了。下面是RHEL關于SWAP分區空間大小的建議:

Swap should equal 2x physical RAM for up to 2 GB of physical RAM, and then an additional 1x physical RAM for any amount above 2 GB, but never less than 32 MB. For systems with really large amounts of RAM (more than 32 GB) you can likely get away with a smaller swap partition (around 1x, or less, of physical RAM).

按照上面文字的意思,就是根據服務器的物理內存大小來設置,假設物理內存大小為nG:

  • 物理內存nG小于等于2G,則SWAP分區分配物理內存2倍的空間,即2*nG;
  • 物理內存nG大于2G而小于32G,則SWAP分區在4G(2*2G)的基礎上再加一個大于32MB小于物理內存M超出2G的空間,即:4G+32M ~ 4G+(n-2)G;
  • 物理內存nG大于32G,則可以忽略掉小的SWAP分區,也就是分配小于等于物理內存的SWAP分區,即:<=nG。

知道如何決定SWAP分區的空間大小,就可以開始分配SWAP分區了。

分配SWAP分區

下面在UBUNTU16.04下演示如何分配SWAP分區。在分配SWAP分區之前,先要確認目前服務器上SWAP分區的具體情況。用swapon命令就可以查看SWAP分區的分配情況:

  1. sudo?swapon?–show

如果沒有任何輸出,那就說明服務器沒有分配SWAP分區。
當然你也可以用free命令來查看內存詳情:

  1. free?-h

輸出結果類似這樣:

  1. ??????????????total????????used????????free??????shared??buff/cache???available
  2. Mem:???????????488M?????????36M????????104M????????652K????????348M????????426M
  3. Swap:????????????0B??????????0B??????????0B?

如上所示,SWAP一行均為0,即:服務器上沒有分配SWAP分區。

查看你的硬盤使用情況

通常,SWAP分區是從物理硬盤上劃分出一個獨立的分區來實現的,但是修改已有的硬盤分區機制并不總是可行。幸運的是,我們可以很容易地從一個已經存在的分區新建一個SWAP分區。

在此之前,我們需要先通過下面的命令來檢查一下硬盤的使用情況:

  1. df?-h

輸出結果類似這樣:

  1. Filesystem??????Size??Used?Avail?Use%?Mounted?on
  2. udev????????????238M?????0??238M???0%?/dev
  3. tmpfs????????????49M??624K???49M???2%?/run
  4. /dev/vda1????????20G??1.1G???18G???6%?/ ??
  5. tmpfs???????????245M?????0??245M???0%?/dev/shm
  6. tmpfs???????????5.0M?????0??5.0M???0%?/run/lock
  7. tmpfs???????????245M?????0??245M???0%?/sys/fs/cgroup
  8. tmpfs????????????49M?????0???49M???0%?/run/user/1001

在這里/dev/vda1就是我們的硬盤設備了,硬盤空間一共有20G,現在才使用了1.1G,還有18G可用。我們可以在此創建SWAP分區。因為我的物理內存只有512MB,我決定創建1G的SWAP分區。

創建SWAP分區文件

明確了硬盤分區情況,我們可以繼續創建SWAP分區了,我們首先要創建一個大小為1GSWAP文件,就在根目錄創建,取名為swapfile。命令如下:

  1. sudo?fallocate?-l?1G?/swapfile

我們可以通過下面的命令來驗證一下它的大?。?/p>

  1. ls?-lh?/swapfile
  2. -rw-r–r–?1?root?root?1.0G?Apr?25?11:14?/swapfile

OK,一切正常,我們可以繼續下一步。

啟用SWAP分區文件

SWAP分區文件已經準備好了,接下來就是啟用它了。首先從安全角度考慮,我們需要鎖定僅有root可以有SWAP分區文件的讀寫權限。

  1. sudo?chmod?600?/swapfile

然后再次驗證一下權限

  1. ls?-lh?/swapfile
  2. -rw——-?1?root?root?1.0G?Apr?25?11:14?/swapfile

這樣就只有root用戶有權限訪問SWAP分區文件了?,F在我們可以通過下面的命令把SWAP分區文件標記為SWAP分區。

  1. sudo?mkswap?/swapfile
  2. Setting?up?swapspace?version?1,?size?=?1024?MiB?(1073737728?bytes)
  3. no?label,?UUID=6e965805-2ab9-450f-aed6-577e74089dbf

然后我們需要啟用SWAP分區并開始使用它。

  1. sudo?swapon?/swapfile

我們可以通過下面的命令來驗證一下服務器上的SWAP分區是否已經生效。

  1. sudo?swapon?–show
  2. NAME??????TYPE??SIZE?USED?PRIO
  3. /swapfile?file?1024M???0B???–1

當然,你喜歡的話,用free命令也是一樣可以看到內存分配情況。

  1. free?-h
  2. ??????????????total????????used????????free??????shared??buff/cache???available
  3. Mem:???????????488M?????????37M?????????96M????????652K????????354M????????425M
  4. Swap:??????????1.0G??????????0B????????1.0G

SWAP分區已經成功創建了,服務器已經開始使用它了,我們已經接近完工了。說接近完工的意思就是還差那么一點。

固化SWAP分區設置

在前面的步驟中,我們已經完成了SWAP分區的設置,但還差一點,那就是固化SWAP分區設置。如果沒有固化SWAP分區設置,在服務器重啟后,系統將不能自動保留SWAP的分區設置,我們可以通過修改/etc/fstab文件來固化分區設置。

為避免發生意外,先備份一下fstab文件。

  1. sudo?cp?/etc/fstab?/etc/fstab.bak

然后修改fstab文件,將相關信息添加到fstab文件末尾。

  1. echo?‘/swapfile?none?swap?sw?0?0‘?|?sudo?tee?-a?/etc/fstab

OK,SWAP分區創建的工作就完成了。

調整SWAP分區的使用策略

SWAP分區是有了,但如何制定有效的使用策略對提高服務器的性能至關重要。SWAP分區使用的是硬盤,其讀寫性能肯定比不上內存和緩存,對服務器而言肯定是在迫不得已的情況下才使用。在UBUNTU16.04下,如何使用SWAP分區是由參數swappiness決定的,它的取值范圍為0~100,標識從物理內存轉移到SWAP分區內容的百分比,這個值越接近0就意味著越少的內容會被轉移到SWAP區。由于UBUNTU早期是作為桌面系統,也許你可以在服務器上看到像下面這樣的結果,默認的swappiness設置為60

  1. $?cat?/proc/sys/vm/swappiness
  2. 60

對桌面系統而言,60是一個可以接受的值,但對服務器而言,需要設置得接近0,比如設為10,會更合理。通過下面的命令可以將swappiness的值設為10。

  1. sudo?sysctl?vm.swappiness=10
  2. vm.swappiness?=?10

同樣的道理,為了讓修改在系統重啟后仍然有效,需要編輯sysctl.conf文件

  1. sudo?vi?/etc/sysctl.conf

在文件結尾處加上

  1. vm.swappiness=10

關閉文件,并保存修改。

好了,通過上面的例子,相信你已經擁有了自己的SWAP分區,并能有效地使用它了。SWAP分區對于避免服務器出現因為內存耗光而崩潰的情況能起到一定的緩解作用,但需要注意的是SWAP分區畢竟是用硬盤虛擬出來的,性能上遠不如內存,所以如果服務器的內存確實不夠用了,最佳選擇還是增加物理內存。

>>原創文章,歡迎轉載。轉載請注明:轉載自惠州市卓優互聯科技有限公司,謝謝!
>>原文鏈接地址:如何給LINUX服務器分配SWAP分區


關于作者

留下您的回復