Мысли по увеличению эффективности кэширования
Михаил Монашёв
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