你們好,我是高勝寒,本文是Linux運維-按部就班學運維-基礎篇的第49篇原創文章。緩存
今天咱們來聊聊分區當中的sawp分區。服務器
在Linux下,SWAP的做用相似Windows系統下的「虛擬內存」。當物理內存不足時,拿出部分硬盤空間當SWAP分區(虛擬成內存)使用,從而解決內存容量不足的狀況。app
好比咱們的手機內存是2G,當出現看電影比較卡頓的時候,咱們能夠獲取手機root權限,把硬盤裏的某個文件擴展成swap分區,這樣當手機內存不足的時候,就能夠直接使用swap內存。運維
固然了,咱們的swap空間一旦用完,操做系統就會幹掉消耗內存最多的進程來釋放部份內存。就是這麼霸道。ide
有詩云:
獨坐池塘如虎踞, 綠蔭樹下養精神。
春來我不先開口 ,哪一個蟲兒敢做聲。測試
就是這麼霸道的操做系統!阿里雲
Linux對於內存的回收有兩種狀況,一種是分配內存的時候發現沒有足夠的空間內存能夠分配,這時候會觸發回收內存
第二種狀況是,開啓了一個守護進程,週期性的對系統內存進行檢查,在可用內存下降到必定的閾值以後會主動觸發內存回收。spa
這就跟咱們老家設計的自動上水裝置是同樣的,在大缸裏放上一個懸浮球,懸浮球對應這上水總閘, 當水位持續下降到大缸的1/4的時候,懸浮球牽引的線,達到了最緊狀態,牽動了上水總閘的開關,自動通電上水,當水位達到了大缸的上限閾值以後,自動中止上水。操作系統
那麼既然說獲得內存回收,Linux的內存回收,究竟回收的是什麼?設計
其實回收也分兩種狀況:
我以前的文章中有提到過swappiness, 這個值是用來定義內核使用swap的積極程度。值越高說明內核會積極的使用swappiness. 而Linux也是根據swappiness來決定回收哪類內存的。
我這裏有個1GB的swap,是我之間建的,你的應該沒有這個。
以前有學員買了個阿里雲,在上面安裝了zabbix,但zabbix一直告警: swap空間不足。 事實上如今的雲服務器都沒有swap空間,因此這個時候你須要用到擴容。
固然凡是涉及到環境檢查的時候,發現swap空間檢查不經過,咱們就要第一時間對swap分區進行擴容。
關閉來測試下:
[root@gaosh-1 ~]# dd if=/dev/zero of=swap_file bs=1M count=1000記錄了1000+0 的讀入 記錄了1000+0 的寫出 1048576000字節(1.0 GB)已複製,22.4257 秒,46.8 MB/秒[root@gaosh-1 ~]#
[root@gaosh-1 ~]# chmod 0600 /root/swap_file [root@gaosh-1 ~]# mkswap -f /root/swap_file #格式化Setting up swapspace version 1, size = 1023996 KiB no label, UUID=678f0d13-3105-4930-a89a-21e7a30a5d26[root@gaosh-1 ~]# swapon /root/swap_file #加入swap[root@gaosh-1 ~]# free -m total used free shared buffers cached Mem: 3547 2604 943 3 76 2064 -/+ buffers/cache: 462 3084 Swap: 3255 0 3255[root@gaosh-1 ~]#
能夠看到在方法一的時候,swap是2255, 方法二又加了1G內存,如今是3547
swap分區中,使用分區添加,只要你會使用fdisk添加分區了,就很容易學會。 而使用dd這種方法也比較常見,並且dd 能夠作不少事情,好比備份,恢復,銷燬磁盤等,咱們後面會單獨拿出時間來講dd的使用。
我是高勝寒,一個在教培行業不忘初心的人,歡迎點贊收藏,咱們下篇文章見。