由於樹莓派3的默認內存只有1G,而應用程序運行過程中,存在大量的IO讀寫,以及網絡轉換,內存交換等。這樣,也有很多buffer、cache資源占用等,很快就會接近1GB,最終導致可使用內存就幾KB,程序稍微運行一段時間,部分就會自動crush掉;存在如下這樣的問題:
(1)接收大量圖片,服務占用內存較高(pandion占用310MB,osprey占用396MB)加上buffer和cache占用資源之和,接近900MB,盒子本身內存資源不足,可用內存只剩下25~27MB;這樣性能比較差,傳圖慢,會導致擠壓;

(2)SD卡存儲空間小,可見盒子可用內存持續保持在26MB左右,本身swap分區只有100MB;

修改之后,檢查看起來性能相對稍微強一點。下面簡要記錄一下swap擴展分區:
一.Linux下察看swap分區大小的命令
top
或者fdisk -l
或者free -m
SWAP分區一般大小為物理內存的2倍,但最大不超過2G;
二.swap增加方法
增加SWAP空間的方法有兩個:增加另外一個SWAP分區,或通過創建一個SWAP文件來實現。
一)增加一個SWAP分區:
1)創建一個SWAP分區: fdisk -l /dev/cciss/c0d0 (m---p ---n --t (將分區格式轉換成 82)--w)(如/dev/cciss/c0d0p6)
2)格式化分區:mkswap -c v1 /dev/cciss/c0d06;
3)修改/etc/fstab文件,增加
/dev/cciss/c0d0p6 swap swap default 0 0
4)激活swap分區:swapon -a /dev/cciss/c0d0p6;
5) 查看swap 分區:swapon -s 或 free 或 cat /proc/swaps
二)增加一個SWAP文件;
1)dd if=/dev/zero of=/tmp/tmp.swap bs=1M count =100;( 建立一個100M的文件);
2)mkswap /tmp/tmp.swap; (標識為SWAP文件)
3)swapon /tmp/tmp.swap;(激活SWAP文件)
4)修改/etc/fstab文件,增加以下內容:
/tmp/tmp.swap swap swap default 0 0
5)swapon -s 或free 或cat /proc/swaps 查看。
三)刪除SWAP分區:
1) swapoff /dev/cciss/c0d0p6;
2) 修改/etc/fstab文件。
參考實踐腳本:
dd if=/dev/zero of=/tmp/tmp.swap bs=1M count=1024;
mkswap /tmp/tmp.swap;
swapon /tmp/tmp.swap;
# sudo vi /etc/fstab # /tmp/tmp.swap swap swap default 0 0
sudo cp /etc/fstab /etc/fstab.bak
sudo sed -i '5i /tmp/tmp.swap swap swap default 0 0' /etc/fstab

驗證可用。
參考:
dd if=/dev/zero of=/mnt/swap bs=1M count=4096 mkswap /mnt/swap chmod 0600 /mnt/swap swapon /mnt/swap vi /etc/fstab
a
