計算機科学における「5分ルール()」とは、あるデータ項目をメモリ上に保持し続けるべきか、それとも必要に応じてメモリに読み戻すべきかを判断するための経験則。この経験則は1985年に、タンデムコンピューターズ社のジム・グレイとジャンフランコ・プッツォル(Gianfranco Putzolu)によって初めて提唱され..、 その後、メモリと永続ストレージの相対的費用と性能の変化を反映させる形で、1997年.および2007年 Free version in ACM Queue, September 2008.に改訂された。

経験則は以下の通り:5分ランダムルール: 5分以内の間隔で再利用される、ランダムにアクセスされたディスクページをキャッシュする。グレイはまた、シーケンシャルアクセスに対しても、それに対応する「1分ルール」を提示した:1分ルール: 1分以内の間隔で再利用される、シーケンシャルにアクセスされたディスクページをキャッシュする。5分ルールはデータベースの分野で考案されたものだが、(例えば)Network File Systemのキャッシュ容量計画など、他の分野にも適用されている。

当初の5分ルールは、以下の費用対効果の計算式から導き出されたものである:

損益分岐点間隔(秒) = (RAM 1MBあたりのページ数 / ディスク1台あたりの秒間アクセス数) × (ディスクドライブ1台あたりの価格 / RAM 1MBあたりの価格)

2007年のデータにこれを適用すると、磁気ディスクからDRAMへのキャッシングでは約90分、SSDからDRAMへのキャッシングでは15分、ディスクからSSDへのキャッシングでは2時間15分という間隔が導き出される。したがって、ディスクからDRAMへのキャッシング間隔は、1987年にGrayとPutzoluが2007年時点でのRAMとディスクの関係について「5時間ルール」として予測していた値よりもやや短いものとなった。

The Registerが報じたネットアップのエンジニア、David Dale氏の試算によると、2008年時点でのディスクからDRAMへのキャッシングに関する数値は以下の通りであった:「50KBのページサイズでは損益分岐点に達するまでの時間が5分であったのに対し、4KBでは1時間、1KBでは5時間であった。損益分岐点を5分にするには、ページサイズを50倍にする必要があった」。また、2010年時点でのディスクからSSDへのキャッシングについては、同ソースは「SLCの場合、250KBのページサイズでは損益分岐点に達するのに5分を要したが、4KBのページサイズでは5時間かかった。MLCフラッシュの場合、625KBのページサイズでは5分であったが、4KBのページサイズでは13時間を要した」と報告している。

2000年、GrayとShenoyはに対して同様の計算を適用し、ブラウザは「その有効期間内に再参照される可能性が少しでもあるならば、ウェブページをキャッシュすべきである」と結論付けたJim Gray, Prashant Shenoy, "Rules of Thumb in Data Engineering", MS-TR-99-100.。

関連項目

Swappiness ハイブリッドHDD Linux系の話題(Linux topics) dm-cache キャッシュ無効化 ExpressCache

5分ルール

脚注