成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

物理內存不夠用,臨時增大Linux交換分區的方法

系統 Linux
當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。系統中交換分區的大小并不取決于物理內存的量,而是取決于系統中內存的負荷,所以在安裝系統時要根據具體的業務來設置SWAP的值。

當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數據到內存中。這樣,系統總是在物理內存不夠時,才進行Swap交換。這個是SWAP 交換分區的作用。

系統中交換分區的大小并不取決于物理內存的量,而是取決于系統中內存的負荷,所以在安裝系統時要根據具體的業務來設置SWAP的值。其實虛擬內存并不是等到物理內存用盡了才使用的,是否盡量的使用或不使用swap,在內核空間有一個參數控制。

# cat /proc/sys/vm/swappiness
60

表示默認的swappiness的值為60。換而言之,當swap空間使用達到60%的時候,開始釋放物理內存中的cache/buffers。swappiness=0 的時候表示最大限度使用物理內存,然后才是swap空間;swappiness=100 的時候表示積極的使用swap分區,并且把內存上的數據及時的搬運到swap空間里面。

現在服務器的內存動不動就是上百G,所以我們可以把這個參數值設置的低一些,讓操作系統盡可能的使用物理內存,降低系統對swap的使用,從而提高系統的性能。例如

# echo 10 > /proc/sys/vm/swappiness

或者

# sysctl vm.swappiness=10
vm.swappiness = 10
# cat /proc/sys/vm/swappiness
10

這表明修改已經生效。但是如果我們重啟了系統,它又會變成60。為了讓我們的修改長久有效,可以修改配置文件/etc/sysctl.conf:

# echo 'vm.swappiness=10' >>/etc/sysctl.conf

為了讓它即時生效,可執行:

# sysctl -p

重新載入配置文件。 

目前Red Hat(紅帽官方)推薦交換分區的大小應當與系統物理內存的大小保持線性比例關系。不過在小于2GB物理內存的系統中,交換分區大小應該設置為內存大小的兩倍,如果內存大小多于2GB,交換分區大小應該是物理內存大小加上2GB。其原因在于,系統中的物理內存越大, 對于內存的負荷可能也越大。但是,如果物理內存大小擴展到數百GB,這樣做就沒什么意義了。

最近,在Gentoo中編譯webkit-gtk-1.10.2-r300,辛辛苦苦編譯了幾個小時,結果報錯:

collect2: ld termiinated with signal 9 [Killed]

通過Google搜索,發現這是由于編譯過程中機器的內存耗盡引起的。這就是說解決問題的辦法是增加內存。不過加物理內存是遠水,解不了近火。既然Linux中的交換分區也是內存的一部分,于是不妨嘗試增加交換分區。 這又讓我們想起了紅帽官方對于交換分區的建議:Linux系統交換分區最適合的大小是物理內存的1-2倍。可是誰又會在分區的時候記得這些呢?不過由于Linux允許文件系統中存在多個交換分區或者交換分區文件,所以亡羊補牢、為時未晚。如果我們的磁盤空間還尚有空余沒有劃分,那么我們可以直接利用分區工具再分出一個交換分區。倘若你像我一樣,所有空間都已經被劃分完了,那么只剩一招了—使用交換分區文件。下面我們主要來說說如何利用交換分區文件擴大分區。

首先,需要制作交換分區文件。考慮到我的老機器已有的物理內存是1G、現有交換分區大小是500M。為了我們的編譯過程順利完成,不妨考慮交換分區文件的大小為1G。為此,執行下述命令:

$ sudo dd if=/dev/zero of=/var/tmp/swap bs=1k count=1024000

記錄了1024000+0 的讀入

記錄了1024000+0 的寫出

1048576000字節(1.0 GB)已復制,5.07655 秒,207 MB/秒

它將在/var/tmp路徑創建一個名為swap、大小為1G的分區文件,該分區文件擁有1024000個扇區(block),每個扇區大小為1K。接著,再把這個分區文件格式化為交換分區格式:

$ sudo mkswap /var/tmp/swap

隨后,將它掛載到文件系統:

$ sudo swapon /var/tmp/swap

如果想要確認交換分區是否掛載成功,可執行:

$ swapon -s 
Filename      Type      Size    Used  Priority
/dev/sda1     partition 511996  16192 ?1
/var/tmp/swap file      1023996 0     ?2

從顯示結果來看,我們確實看到了文件格式交換分區被加載。如果還想要查看系統內存情況,只需執行:

$ free -m
       total       used free shared buffers cached
Mem:   995         935  60   0      6       551
-/+ buffers/cache: 376  618
Swap:  1499        15   1484

通過擴大swap區,可以正常將webkit-gtk-1.10.2-r300編譯完。實際上,用top跟蹤webkit-gtk-1.10.2-r300的編譯過程,會發現整個編譯過程所需要的內存大概在2G左右。而我們通過增加交換分區的大小,總獲得了2.5G左右的內存空間。編譯完之后,如果我們不再需要這一塊交換分區文件,那么可以先卸載再刪除它:

$ sudo swapoff /var/tmp/swap
$ sudo rm -rf /var/tmp/swap

倘若我們仍希望交換分區文件為以后的編譯提供便利,那么可以選擇保留它。不過在使用它之前必須先掛載它,因為一旦重啟,原先的掛載便會失效!若要讓我們的交換分區文件隨機器啟動自動掛載,則可修改/etc/fstab文件,例如作如下設置:

$ cat /etc/fstab | grep -i swap
/dev/sda1     none swap sw       0 0
/var/tmp/swap swap swap defaults 0 0
責任編輯:黃丹 來源: is-programmer.com
相關推薦

2021-03-15 23:11:12

內存虛擬化技術

2015-07-16 15:16:41

內存泄露解決辦法

2019-11-15 10:41:10

Vim分屏終端

2018-11-22 14:34:01

局域網IP擴容

2013-05-02 09:16:16

程序員

2023-05-17 07:28:18

電腦16GB內存

2013-12-19 10:08:52

AWS服務器

2024-08-05 11:08:53

內存File項目

2016-11-25 15:03:33

FacebookWIFI

2024-07-25 12:33:45

2019-07-24 14:05:17

Redis內存集群

2019-07-25 15:23:05

Redis電腦數據庫

2013-10-23 14:28:30

2017-03-23 11:24:26

Windows 10Windows系統盤

2021-08-08 08:17:45

事件響應日志網絡安全

2020-11-12 07:47:18

程序員管理時間

2014-08-08 09:56:28

LinuxSwap分區

2024-10-16 10:50:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩午夜在线播放 | 亚洲精品视频在线看 | 国产精品一码二码三码在线 | 日本大香伊一区二区三区 | 男女视频在线观看 | 免费成人高清在线视频 | 天天拍天天插 | 亚洲成人免费视频 | 精品视频国产 | 日本三级电影免费 | 国产91在线 | 亚洲 | 久久这里有精品 | 欧美成人一级 | 国产高清精品一区二区三区 | 亚洲国产精品福利 | www.亚洲精品| 国产精品久久久久一区二区三区 | 999精品网 | 久久久青草婷婷精品综合日韩 | 一级黄色短片 | 欧美精品一区二区三区四区五区 | 日本激情一区二区 | 天天干夜夜操 | 国产精品国产成人国产三级 | 国产欧美日韩精品一区二区三区 | av看片网站 | 日韩欧美在线视频 | 一级看片免费视频囗交动图 | 免费一级片 | 国产一区二区三区免费 | 欧美一级免费看 | 精品日本中文字幕 | 亚洲欧美日韩国产 | 亚洲毛片在线观看 | 天天操天天摸天天爽 | 人人干人人玩 | 1级毛片 | 中文字幕日韩欧美一区二区三区 | 日本中文字幕一区 | 日韩在线视频一区 | 欧美aaaaa |