メモリスワップ

■メモリスワップアプリ


■手動でswapon

IS01 root化と諸々の作業メモ « コムギドットネット
http://komugi.net/archives/2010/12/06205920.php
※「5.swapする」を参照

■試行錯誤

273
 swap使ってる人って結局その後安定してる? 

274
 >>273 
 NVさんのカーネル+Swapperで安定してる。 

277
 >>274 
 Swapper1だとやっぱり安定するのかな 
 ありがとう、試してみよう 

279
 >>274 
 Swapperで検索すると、Elviss kustansのとAzaSoftのあるけど、どっち? 

281
 >>279 
 Elviss Kustansのやつ 

280
 >>273 
 結局 swapper2 使うのをやめて、 boot.sh から is01 rooter 実行時にswaponするようにした 
 場所は /data/local/tmp/swapfile.swp 
 できればSDカードにしたい所だけど・・・。今のところ安定。 
 
 swap設定ツールは三種類あるようだけど、どれもうまくいかなかったなあ。 
 ・Swapper for Root users 
 ・Swapper 2 (for Root users) 
 ・Swapper for Root 
 上の二つは同系列みたい。 

282
 >>280 
 本体に作るとは勇気あるな… 

286
 >>281のSwapperで無事Swap作成完了 
 ブラウザから他のアプリに移り、もう一度ブラウザに移ると再読込するっていうクソ現象が無くなった 
 これは大きいなー 
 
 >>285 
 録画可能ワンセグ様が常駐してるからって話じゃないっけ 

293
 うーん放っておいたらフリーズした 
 パーティション切らないとダメなのかなぁ 

288
 ワンセグ殺すと、/proc/meminfoで見られる実質的な空きメモリが70MB超えるしね。 
 (実質的な空きメモリ=MemFree+Inactive) 

291
 >>282 
 どうせ何らかの形で内部フラッシュに書き込みしちゃうわけだし、IS01の二台目もあるし自己責任で。 
 yaffs2ってのがどこまでウェアレベリングしてるのかわからんけど 
 内部フラッシュにワンセグ録画出来るくらいだから何とかなるだろと。他の人には薦めません。 
 
 SDカードにlinux_swapパーティション切ってそっちをswapにしたいんだけど 
 IS01でどうやればマウント出来るのかぜんぜん見当がつきません 

295
 >>291 
 external_grub.tar.gzの中調べたらどうでしょうかね。 

300
 普通に考えて出来ないわけがなかった 
 
 Swapper2でもやはりフリーズ 

303
 Swapperはazasoftでいいと思うぞ 
 今まで一回もfreezeしたことない 

305
 >>300 
 スワップファイルの容量かえてみたり、Swapperの設定かえたりしたけどこちらもアウト。 
 EZメール受信のためにrooter切ったり、メモリ管理系のソフト使用時に固まりやすい希ガス。 

314
 >>303 
 入れてみたけど設定後freeコマンド叩いてもスワップ有効になってない。再起動しても同じ。 
 カーネルは入れ替え済み。 

318
 >>314 
 一度スワップ有効のチェック外してアプリ終了して、もういちど有効にして 
 「swapperがスーパーユーザ権限を~」って出たら多分いけるはず・・・ 

323
 >>318 
 1. アプリを立ち上げて有効にして容量セットしてSave 
 2. freeで確認すると出来てない 
 3. アプリを立ち上げて無効にしてSave 
 4. アプリを立ち上げて有効にしてSave 
 5. freeでSwapが出来ていることを確認 
 
 仰るとおりこれで出来たよ!ありがとう! 

326
 >>318 
 何度かやってダメだったけど、一度サイズを変更して、その手順をやったら有効になった。ありがとう。 

328
 >>326 
 サクサク動いて快適と喜んでいたのもつかの間、TkMixiViewer+でコメント書いてたら日本語変換の途中でハングってしまったorz 

332
 >>328 
 高負荷かけても平気だったりする割に、たいした事してない時にハングするよね。 
 フリーズ多発の報告がある一方で安定稼働の報告もあるし、アプリの環境か 
 バージョン固有の問題でもあるのかな? 
 電池外した所の商品コードはSHI01MKX(外箱青シールのX印はいってるやつ)で、 
 01.00.09で仙石カーネル、nvsoftカーネルともに不意にフリーズ・・・ 

335
 swapでフリーズしてないって人は、実はswapon出来てなかったというオチじゃないかと思ってる 
 swapper使って free や cat /proc/meminfo で確認したらswapが0だった事もあったし。 
 
 /data/local/tmp/swapfile.swp に作ったスワップは半日経過後も不具合なし。 
 ただ、今 free して確認したらもう32MB全部埋まってた・・・ 

345
 SDにswap置くとフリーズする気がする。 
 /data下だと問題ないような。 
 フラッシュの書き換え回数気にする人は、やめた方がいいけど。 
 SDのパテ切ってswapは、カーネル再構築しないと駄目なんかな。 

346
 報告 
 昨日本体に置いた32MBのスワップが半日で埋まったので、今度は64MBに変えてみたが 
 朝起きてみたら、再起動して最初のホーム画面に戻ってた 
 SDカードの時のようにハングアップはしてなかったので、スワップとは無関係かもしれないが。 
 32MBにスワップサイズ戻して再度検証してみる 

348
 ブート時にSWAP仕込みたいんだけど、どこに記述すればいいんだろう。 
 それっぽいところが見つからないんだ。 

349
 昨日の午後5時ぐらいからsdに128MBでswapしてるけど、フリーズしてないよ。 
 free投げてもswap動いてるみたいだし、LISMOのバックグラウンド再生も出来てるから特に問題なさそうなんだけど、なんで落ちる人と落ちない人が居るんだろ? 

353
 SDカードにswapファイル作る場合、swappiness10ぐらいにしとくと 安定するかも。 echo 10 > /proc/sys/vm/swappiness 

355
 >>348 
 最初からswap設定する方法については、コムギドットネットさんでまとめられていたよ 
 
 IS01 root化と諸々の作業メモ - コムギドットネット 
 ttp://komugi.net/archives/2010/12/06205920.php 

357
 swapどのツールでやってもどのサイズでやってもどっかしらで問題発生するな 
 SunのClass2の16GBなんだが動く人はClass早かったりするのかな 
 
 ・気づいたら勝手に再起動してる 
 ・何かのツール使用中にフリーズ(Titaniumとか) 
 ・ほっといて見たらフリーズ 
 ・閉じてスリープ入ったら戻ってこない 
 
 一応どれもリセットボタン押すだけで問題はなさそうなんだけど、swapper2でEnableにならなくなった 
 今はAzasoftのswapperで作れてる 

359
 >>357 
 > ・気づいたら勝手に再起動してる 
 俺のところはswap止めても割と頻繁になる 

360
 誤りがあるかもしれないけど、気がついたこと。 
 
 評価用に入ってたSDカードにmmcblk0p1をバックアップしてたらIOエラーとなり 
 その後は/sdcardを読み書きするとIOエラーになった。 
 リブートしたら正常に使える様になり再度やったらちゃんと書き込めた。 
 swapが使えなくなるのってswap自体と言うよりsdカードのアクセスの問題かも。 
 
 あと、ケータイアップデート後の「再起動」は通常のリブートとは別みたい。 
 「後で再起動」にして電源切って起動しなおしたりリカバリーモードにしても更新されなかった。 
 再度ケータイアップデートをやり直したら(再度ダウンロード後)更新出来た。 
 URA_MODEやfastbootについては試していない。(当時知らなかったので) 
 
 ケータイアップデート再起動前の時点でmtd1(cache)とmtd4(ipl)は書き換えられている模様。 

374
 Swapでフリーズ頻発の報告よくみるが、コマンドド素人の自分のは全くフリーズしない。仙石さんの参考にやっただけで、swapperとか使ってない。 
 1背具バックグラウンドにしてもサクサク動く。swaponなってないのはあり得ないほど体感速度違う。皆と何が違うんだろ? 

378
 そいえばデフォのswappinessっていくつなの?60? 
 cat /proc/sys/vm/swappiness 

380
 # cat /proc/sys/vm/swappiness 
 60 
 だった。 

382
 >>380 
 おお、ありがと 

384
 60はスワップし過ぎな気がするけど 

386
 Swap256MB作ってみたら3時間ほど触ったり放置したりしてもフリーズ無し 
 意図的にフリーズ起こすことは今のところできてないし、単純にI/Oが間に合わない状況起こると死ぬとかかな 
 
 そうなるとどんなSDカードでもClass2程度の性能しか出せないIS01の性能がネックになるのか… 

387
 秋葉いったら上海問屋の店舗なくなってた。貴重な昼飯時間が orz 
 2010年2月で実店舗撤退したらしい。 
 
 仕方ないのであきばおーで SILICON POWER の class6 4GB \999 買ってきた。 
 あとで CrystalDiskMark かけて、IS01純正との比較画像アップするわ。 

389
 >>383,386 
 IS01で使うとSDの性能でないって話はどこからきたの? 

393
 >>389 
 自分でSDCardSpeedTestでベンチ取り比べてみたらわかる 

398
 とりあえずベンチ結果 
 http://182.163.88.124/sd-bench.png 
 
 4k random の値が納得いかない部分がありますが、 
 ベンチに詳しくないのですが条件変えて何回もやってみたほうがいいのでしょうか? 
 
 >>393 
 これからやってみます。 

412
 SD AndroidApp 上でのベンチ結果 
 
 SDCardSpeedTest 
 IS01純正 SANDISK Write 2MB/s Read 2MB/s 
 SILICONPOWER Write 2MB/s Read 2MB/s 
 
 Disk Benchmark (Data size 100MB, Buffer size 4KB) 
 IS01純正 SANDISK Write 2.80MB/s, Read 3.33MB/s 
 SILICONPOWER Write 2.72MB/s, Read 3.43MB/s 
 
 結果:速いSDを用意しても意味が無いのかな。 
 
 最後にゴミデータだが 
 CrystalDiskMark を 1000MBにしてやったもの(画像上部) 
 IS01 上に刺した SD カードを 
 USB 接続した PC 上にマウントした状態でのベンチ画像 100MB (画像下部) 
 http://182.163.88.124/sd-bench1000.png 

413
 swapの件だが、クラス2からクラス4に変えたらフリーズ無くなった。 

459
 追伸・swapでフリーズした・フリーズしなかったというのは使ったmicroSDとかを報告しあい、 
 蓄積していったら意味があるんじゃないかと思う。 

460
 >>459 
 それ賛成。 
 MicroSDの 
 メーカ 
 クラス 
 容量 
 できたら型番 
 swapの可否 
 備考 
 くらいかな? 

463
 そんなの報告しなくても 
 おそらく 
 パーティション切ってないだけのアホ 

466
 ソース見た感じだと、SDのパーティション切っても認識しないと思うけど違うか? 

469
 >>466 
 SDにFAT32/ext3/linux_swap切ってるけど、後ろの2つは認識してません 
 SDカードは /dev/block/stheno になってるけど、これ他のAndroid環境とは違いますよね? 

472
 >>469 
 sthenoの本体はカーネルソースの drivers/stheno/stheno_kernel.c にあって、 
 IS01の独自部分の一つ(コードがシャープ製) 
 複数パーティションに対応してないっぽいから、切っても認識されないかと 

621
 最終的にはタップのみで切り替えられるようにするswap設定方法をまとめて見た。 
 http://twit.dainasu.com/blog/wp/ 
 
 なんか間違ってたら指摘くださいな。 

623
 >>621 
 乙です 
 自分は is01rooter の boot.sh 書き換えて、途中に swapon 入れてますが 
 これだと初回実行の時に is01rooter のウィジェットがちゃんと動きませんでした 
 最後まで実行されてるみたいなんだけど、ウィジェットの表示が灰色から緑にならず灰色のまま。 
 いずれちゃんと is01rooter のソース見てみるつもり 

630
 >>621 
 http://twitter.com/MobileHackerz/status/13148226941095937 
 
 1)の参考URLが違わないか 
 
 なんでわざわざ毎回 /system をrwマウントするのか。こええよ 
 
 boot.sh書き換えるならswap作成もここでやればいいのに 
 
 など、なんかいろいろ突っ込みたくなった。 

663
 >>630 
 亀レススマン。今家に帰った。 
 
 1)のURLはリンク先自体はあってたがリンクのテキストが誤ってたので直した。 
 Thx 
 
 busyboxは言われてみればそうだな。 
 考慮が足りなかった。 
 
 毎回boot.shでマウントしてるのは俺自身が再起動したときくらいしかrooter叩かないから。 
 swapをそこでやらないのは通常bootしたときにswapでこけてロード画面でとまるから。 
 といった具合。 
 ま、要するに自分で使いやすいようにやってるので参考程度に考えてくれればよろしいかと。 
 いくらでも他の方法はあるし。 

671
 実際のとこswapって中につくって大丈夫なの? 

673
 >>671 
 以前はフラッシュメモリの書換回数に神経質だったけど 
 ttp://botchyworld.iinaa.net/ssd.htm 
 これ読んでからどうでもよくなった。 
 SDにスワップさせれば壊れても取り換えられるってメリットはあるけど、 
 泥井戸1.6なスマホなんて使い倒しても5年。壊れる前に機種変してるな~。 

678
 >>671 
 大丈夫かは保障しないが、 
 いまのところ中(internalNAND)に SWAP 128MB 作って丸2日(50時間)動いてる。 
 
 で、少し無茶させてみての考察なんだが、 
 1.SWAP を使い切るまでアプリを常駐させまくる。 
 2.常駐させたアプリを全部落として free で確認する。 
 →期待した動作:SWAP の使用状�はそのままで物理メモリに空きが出来る 
 ところが、 
 SWAP の使用量は20MBまで減って、通常メモリの空きはほとんど作られなかった。 
 
 自分の拙い記憶では、1度スワップアウトしたメモリデータは、 
 使われない限りスワップ側に退避されたままだったと思うんだが、 
 これでいくと、使ってないワンセグ類がすぐにメモリを確保している(呼び出されている)感じがある。 
 
 そのあと実際にワンセグを起動してみたが、free でメモリの状況に変化は無かった 
 → 既に SWAP 側にワンセグのメモリ確保は乗っていない。(物理側にある) 
 
 で? って話だ。 

680
 でも中の /data は ext3 なんだよな。 
 /sqlite_journals は ytffs か何かだったから、swap はコッチの方がイイかもしれんぞ。 

682
 swap を作る場所は、 IS01rooter を入れているなら /sqlite_journals/is01root/boot.sh だな。 
 
 if [ ! -e /data/local/tmp/swapfile.swp ]; then 
 dd if=/dev/zero of=/data/local/tmp/swapfile.swp bs=1048576 count=64 
 fi 
 mkswap /data/local/tmp/swapfile.swp 
 swapon /data/local/tmp/swapfile.swp 
 
 こういうふうに追記すれば、IS01rooter で su を有効化するのと同時に swap が ON になる。 
 
 autoexec.sh でも良いけど、adb push で送ったあと実行権限を付け忘れると 
 boot.sh より厄介なことになる。 

11
 というかこれメモリ空けてもワンセグとか何らかのアプリが残り25MBくらいになるまで勝手に奪うようになってない? 

13
 >>11 
 cat /proc/meminfo した時の MemFree と Inactive の合計が実質の空きメモリらしいよ 
 プロセス見てると次から次へ起動しては死んでいくから 
 何かしらアプリがインストールされてる限りは 
 minfree の最大値 6144 
 (24MB) 以上の空きメモリ確保するのは難しいんじゃないかと。 

187
 昔メモリが高価だった頃、RAM Doublerといってメモリを圧縮して空きメモリを増やす技術があったけど、androidではそいうことはできないのかね。 
 swapよりも安全なような気がしないわけじゃない。 

188
 >>187 
 compcacheがある 

190
 >>188 
 お、そうなんだ。ちょっと調べてみます。 

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月16日 06:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。