идея по atime.

Valery Kholodkov valery at grid.net.ru
Thu Jan 17 13:51:58 MSK 2008


OS какая? Если линукс, то какое ядро?

Если 2.6.18 и больше, то можно включить noatime
и в цикле запускать inotifywatch с опцией -e access
с необходимым интервалом и для всех
выданных файлов
выполнять touch. Оставшиеся по крону
удалять find-ом.

Эффект достигается за счет того, что inotify
работает
на уровне файлов, а noatime -- на уровне inode-ов
(см. touch_atime
в fs/inode.c ядра Linux), следовательно они друг
друг не
мешают, а inotifywatch статистику держит в
памяти.

http://inotify-tools.sourceforge.net/

Решение будет грубое, поскольку между
вызовами inotifywatch
будет окно, в которое будут попадать
запросы к некоторым файлам.
Для правильного решения нужно писать
демон.

> Hello Alexey,
>
> хорошо, а можно ли тогда добавить опцию
> для логов - atime? чтобы можно
> было тогда натравливать скрипт на логи
> раз в минуту и он все сам бы
> делал в обход nginx-а.
>
> Thursday, January 17, 2008, 10:34:04 AM, you wrote:
>
>> либо модуль писать, либо через скрипт
>> пропускать такое ...
>
>> On 17.01.2008, at 10:24, Arkadiy Kulev wrote:
>
>>> Hello nginx-ru,
>>>
>>>  Не знаю насколько это реализуемо, но...
>>>  К примеру у меня есть папка с
>>> закэшированными в ней файлами,
>>> которые
>>>  удаляются вручную по достижению mtime
>>> (file modification time)
>>> лимита в 2 недели.
>>>  Это не всегда эффективно, т.к. бывают
>>> слишком часто запрашиваемые
>>>  файлы, которые не хотелось бы
>>> регенирировать несколько раз за время
>>>  их жизни.
>>>
>>>  У меня на FS выставлена опция noatime, дабы
>>> увеличить
>>>  производительность дисков.
>>>
>>>  Игорь, скорее вопрос к вам - можно ли
>>> научить nginx читать atime и
>>>  обновлять его, только если он старше
>>> чем 10,20,60 или сколько-то там
>>>  минут.
>>>
>>>  Таким образом, atime не обновлялся бы при
>>> каждом запросе, а только
>>>  один раз в заданный интервал времени.
>>> Сэкономит ресурсы дисков, но и
>>>  позволит узнать какие файлы стоит
>>> удалять, а какие нет.
>>>
>>> Arkadiy Kulev                         mailto:eth at ethaniel.com
>>> ICQ 17107076
>>> MSN arca at mail.ru
>>> Skype arkadiynight
>>>
>>> +7 495 7266564
>>> Moscow, Russia
>>>
>>>

-- 
Best regards,
Valery Kholodkov






More information about the nginx-ru mailing list