馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
讓手機開啟多個swap區讓資料同時分散寫入
這方法比起開啟一區swap或是多區依序寫入
效能會來得更好
這因為作業系統可以更有效率地管理讀寫資料
同時用在手機上sd卡發熱也少了一點
小弟使用了一段時間覺得不錯用在這裡分享給大家
這方法是依序開啟三塊swap
而資料寫入的機制就會
當第一塊swap寫滿後
接下的資料在寫入swap時就會自動平均分散到剩下的兩塊
而這三區不論是swap檔案或是分割區都是依以上的原則進行
所以依這方法
只要把第一塊swap設小一點讓它快速寫滿
接下來的資料就可以在二三區執行平均分散寫入的功能
我使用的經驗是發熱量少了速度也快了些
長時間開啟swap也比較不鈍
而開啟的三塊可以有不同的組合及位置可以自行調配
目前小弟的設定如下
第一塊:是在檔案型12mb設在目錄下的 /data/sdext2 (link2sd程式使用的sd卡第二分割)
第二區:sd卡上的linux swap分割區 (sd卡第三分割)
第三區:sd卡上的linux swap分割區 (sd卡第四分割)
因此我的sd卡上共有四個分割區(而最多也只能有四個)
mmcblk0p1:原本檔案管理員看得到的sdcard檔案區
mmcblk0p2:link2sd使用,被設定為 /data/sdext2
mmcblk0p3:swap partition
mmcblk0p4:swap partition
在我a1的手機上(有用link2sd,而sd卡分割區也已分割了兩區swap)
啟動方法是開機時執行或是以手動方式執行以下腳本:
#sdcard 3-way swap for twmA1 with link2sd and two linux swap partitions
if [ ! -e /data/sdext2/swap.img ]
then
dd if=/dev/zero of=/data/sdext2/swap.img bs=1024 count=12000
fi
busybox losetup /dev/block/loop5 /data/sdext2/swap.img
busybox mkswap /dev/block/loop5
busybox swapon /dev/block/loop5
busybox swapon /dev/block/mmcblk0p3
busybox swapon /dev/block/mmcblk0p4
以上(非a1手機或沒有用link2sd請自行調整)
千萬要注意的是
在執行時swapon指令要特別注意分割區的名字,像是mmcblk0p3等
swap掛錯分區時會毀了重要的資料
特別是a1手機沒有內卡因此mmcblk0是給外卡sd卡的
其他有內卡的手機千萬要注意
另外loop0到loop7都可以用,不要重覆就好
我loop6是用在/cache下的swap檔
因此 /data/sdext2 是用loop5
第一個swap檔儘不設在sd卡的第一分割
是因為一但使用到這區裡的swap
就沒有辦法用usb連上pc
所以我把它設在第二分割區的 /data/sdext2(也就是link2sd在使用的地方)
另外也可以把這一區設在 /cache下面 (在手機裡頭的RON裡頭)
至於已經分割過sdcard後如何有兩個swap分割區
只要把sd卡拿到電腦上用工具程式
把它分割成大小一樣的兩區linux swap(同樣是primary)就好了
因此這樣第三四分割區就都是swap partition
我目前是128mb*2
不過做這件事要注意
不要去調整前兩區的大小
會出事的
ps.
小弟一開始原本是想用 swapon -p 指令在一開始
就把兩個swap分割區執行資料分散寫入
但怎麼試都沒有辦法
swap寫入還是依照開啟的順序
後來查到android 2.3.x沒辦法用這種方法
(不過4.1以上的好像可以?)
至於為何開啟三區是這種分配順序我也不知道
我曾開啟四區但也只有在二三區分散資料
在這裡求解答
自台灣大哥大一再推出新機後
a1已經沒有未來了...就繼續多柞出些功能吧 |

|