02.26 linux下如何臨時增加虛擬內存

一、遇到的問題

我的電腦配置是16G內存,足以應付一般的程序運行需要了,所以就沒有考慮過增加虛擬內存分區。由於我使用的系統是Gentoo,安裝軟件時通常需要從源碼編譯,為了避免磁盤的頻繁讀寫及增加編譯速度就把內存當磁盤使用,配置為portage包管理軟件用來存儲臨時文件的一個分區。

前些時間更新整個系統時,需要重新編譯QT相關組件,從編譯信息看到需要3萬多個編譯階段,當編譯到2萬多階段時,產生的臨時文件所佔用的空間已經非常大了,幾乎吃光了所有內存,過一會就由於內存不足導致編譯失敗。

二、解決方法

為了編譯成功有兩種解決方法,一是把portage使用的臨時存儲配置為磁盤,二是臨時增加虛擬內存,我選擇了第二種方法。虛擬內存有兩種使用方式,一種是使用分區,另一種是使用文件,我選擇了使用文件的方法,以下是操作步驟。

1、操作前虛擬內存信息如下(Swap行表示的是虛擬內存)

linux下如何臨時增加虛擬內存

2、創建需要用作虛擬內存的文件,比如16G大小

linux下如何臨時增加虛擬內存

3、進行虛擬內存格式化

<code>mkswap swapfile/<code>

4、開啟虛擬內存

<code>swapon swapfile/<code>

5、現在虛擬內存信息如下

linux下如何臨時增加虛擬內存

可以看到虛擬內存已經增加了16G,如果一個虛擬文件不夠用就重複上面的步驟進行增加。如果經常遇到內存不足的情況建議升級內存,畢竟虛擬文件的讀寫速度與真實內存不是一個量級的。

經過以上操作後我又重新開始了編譯,幾個小時後就編譯成功了。

如果交換文件使用大小是0,那麼可以通過以下命令關閉

<code>swapoff swapfile/<code>

如果執行成功就會得到下面的結果

linux下如何臨時增加虛擬內存


分享到:


相關文章: