В информатике правило пяти минут — это эмпирическое правило для принятия решения о том, следует ли хранить элемент данных в памяти или на диске и считывать его обратно в память при необходимости. Впервые оно было сформулировано Джимом Греем и Джанфранко Путцолу в 1985 году [1] [2] , а затем впоследствии пересмотрено в 1997 [3] и 2007 [4] для отражения изменений в относительной стоимости и производительности памяти и постоянного хранилища.
Правило следующее:
Правило случайных 5 минут: кэшировать случайно доступные страницы диска, которые повторно используются каждые 5 минут или чаще.
Грей также выпустил аналог правила одной минуты для последовательного доступа : [5]
Правило 1 минуты: кэшируйте последовательно доступные страницы диска, которые повторно используются каждую минуту или чаще.
Хотя правило 5 минут было изобретено в сфере баз данных, оно также применялось в других областях, например, при планировании емкости кэша сетевой файловой системы . [6]
Первоначальное правило 5 минут было получено на основе следующего расчета затрат и выгод: [4]
Применяя его к данным 2007 года, получаем приблизительно 90-минутный интервал для кэширования магнитного диска в DRAM, 15 минут для кэширования SSD в DRAM и 2 1⁄4 часа для кэширования диска в SSD. Таким образом, интервал диска в DRAM был немного короче того, что Грей и Путцолу предсказывали в 1987 году, поскольку « правило пяти часов» должно было быть в 2007 году для RAM и дисков. [4]
Согласно расчетам инженера NetApp Дэвида Дейла, опубликованным в The Register , показатели кэширования диска в DRAM в 2008 году были следующими: «Безубыточность страницы размером 50 КБ составила пять минут, страницы размером 4 КБ — один час, а страницы размером 1 КБ — пять часов. Для безубыточности в пять минут необходимо было увеличить размер страницы в 50 раз». Что касается кэширования диска в SSD в 2010 году, тот же источник сообщил, что «Безубыточность страницы размером 250 КБ с SLC составила пять минут, но пять часов с размером страницы 4 КБ. Она составила пять минут с размером страницы 625 КБ с флэш-памятью MLC и 13 часов с размером страницы MLC 4 КБ». [7]
В 2000 году Грей и Шеной применили аналогичный расчет для кэширования веб-страниц и пришли к выводу, что браузер должен «кэшировать веб-страницы, если есть хоть малейшая вероятность того, что на них будут повторно ссылаться в течение их жизненного цикла». [8]