Мысли по увеличению эффективности кэширования

Михаил Монашёв postmaster на softsearch.ru
Вс Май 13 06:49:39 UTC 2012


Здравствуйте.

Подумалось, что раздавать разные закэшированные файлы в зависимости от
их  размеров  (и  возможно чего-то ещё) для сервера может обходиться в
разное  количество  ресурсов.  Если  в  кэш влезает, скажем, 2 больших
файла  или  1000  маленьких,  то  эффективность кэша будет зависеть не
только  от  частоты  запросов к файлам, но и от количества обращения к
диску  при  отдаче  каждого  отдельного  файла.  Т.е.  вместо счётчика
обращений  к  файлу наверное правильнее было бы хранить число дисковых
операций, которое реально делается при отдаче этого файла.

А  если в этом счётчике ещё учитывать дисковые операции, затрачиваемые
на  получение  файла  с  бэкенда и запись его в кэш, то можно заменить
директиву  proxy_cache_min_uses  на  директиву,  указывающую стоимость
записи  на  диск  относительно  стоимости  чтения с диска. Если в этой
директиве,  скажем  5,  то  это  значит,  увеличивать счётчик на 5 при
записи  файла и на 1 при чтении. Тогда, возможно окажется, что большие
файлы  эффективнее  кэшировать  с первого раза, а мелкие - с десятого.
Т.е.  решение  о  добавление  файла  в  кэш будет зависеть от значение
счётчика  самого неэффективного файла: пока не превысил этот счётчик с
учётом  будущих  дисковых  операций  на запись файла в кэш, кэшировать
файл не эффективно.


-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



Подробная информация о списке рассылки nginx-ru