問題描述
在嵌入式設備上經常會遇到內存不足的情況,比如用Qt Creator編譯一個比較大的程序時可能就會出現out of memory 問題。這就表明內存不足,程序崩潰無法繼續運行。
解決方法
1 查看內存
先查看物理內存和虛擬內存的使用情況
free -m #查看物理內存大小
2 設置虛擬內存大小
sudo dd if=/dev/zero of=/tmp/swapfile bs=1M count=4096
設置一塊大小爲4G的內存空間,虛擬內存的空間大小爲物理內存的1-2倍較合適。
3 修改權限
修改內存空間的權限
sudo chmod 600 /tmp/swapfile
4 格式化
sudo mkswap /tmp/swapfile
不格式化可能會出現swapon: /tmp/swapfile: read swap header failed問題
5 開啓虛擬內存
sudo swapon /tmp/swapfile
6 設置配置文件
sudo vim /etc/fstab
編輯/etc/fstab文件使系統開機後自動掛載虛擬內存空間,設置如下
/tmp/swapfile swap swap defaults 0 0
7 查看設置好的虛擬內存
查看可以使用兩種方式
sudo swapon -s
free -m
總結
在現在的時代,內存已經不再那麼昂貴,在x86平臺要是遇到內存不足的情況直接加裝內存條就解決了,但是在嵌入式平臺上一般配備的內存都比較小,加上內存基本都是焊死在電路板上的,根本沒法替換。因此使用虛擬內存來解決內存不足的問題還是比較有意義的。