yanagihara
2014年2月7日 12時43分
お世話になります、柳原です。
/dev/にはtmpfsなRAMディスクがマウントされますが、sizeオプションで
上限を設けたい場合、最低何バイト割り当てるべきかを見積もる方法
はありませんでしょうか?
sizeオプションが無いとメモリの半分(Armadillo-440では64MB)が
割り当てられます。一方、現状の使用量をdfで確認したところ4kB
しか使っていません。
なお「tmpfsは動的にRAMを消費するので制限が64MBでもOS作業
エリアとしてのメモリ容量がすぐさま逼迫しないから問題無し」といった
ご回答はご遠慮致します。
コメント
yanagihara
at_yashi
tmpfs の場合、HDDやSSDのような二次記憶装置があるわけではなく、すべてカー
ネルのメモリ内のデーターになります。そのため、device node を作成した後
のメモリ使用量の増加分を計算するしか方法がありません。
free や /proc/meminfo を利用しても良いですが、/proc/slabinfo の
shmem_inode_cache を参考にするのが良いかもしれません。
というのも、tmpfs上で mknodを呼び出した場合
shmem_mknod() -> shmem_get_inode() -> new_inode() -> new_inode_pseudo() /* 新しいカーネルだけ */ -> alloc_inode() -> shmem_alloc_inode() -> kmem_cache_alloc(shmem_inode_cachep, GFP_KERNEL);
と遷移するからです。
at_yashi
2014年2月7日 13時38分
こんにちは。
> /dev/にはtmpfsなRAMディスクがマウントされますが、sizeオプションで
> 上限を設けたい場合、最低何バイト割り当てるべきかを見積もる方法
> はありませんでしょうか?
device node file だけという前提で、
2つアイディアを出してみます
- 長期ランニング試験や負荷試験の後に、実測する
- device node ひとつのサイズを実測し、必要なデバイス数をかけ算
どうでしょう?