Здравствуйте, Игорь.
>> Можно ли для директивы open_file_cache_errors задавать время
>> кэширования отдельно от файлов, которые существуют?
>>
>> У меня файл закачивается на хост А, потом вебдавом перемещается на хост
>> В. Пока его нет на хосте В, идут редиректы на хост А. А файлы на хосте
>> В лежат потом вечно. Поэтому хотелось бы кэшировать существующие файлы
>> на долго, а несуществующие на несколько секунд. Что-то вроде:
>>
>> open_file_cache max=1000 inactive=300s;
>> open_file_cache_retest 30s;
>> open_file_cache_errors on inactive=5s;
> Нет. inactive - это параметр всего кэша. Сделано это было умышлено, чтобы
> это время хранить в виде списка, а не городить ещё одно бинарное дерево.
> Вообще для подобных location'ов лучше выключать open_file_cache_errors.
Я тут сейчас поставил (прочитав РИТ-овскую синюю книжку :-) )
# sysctl kern.maxfiles=204800
# sysctl kern.maxfilesperproc=200000
ребутнул nginx и стал смотреть количество открытых файлов. Оно выросло
до kern.openfiles: 22118 и сервер упал.
Проклятый zfs съедает кучу памяти ядра и на открытые файлы места уже
не хватает, хотя vm.kmem_size_max: 1073741824
Я уже пожалел много раз, что связался с ZFS, если честно. Больше 25
мегабит (по статистике мастерхоста на порту) с пяти сигейтовских
SATA-винтов по 750Гб, объединенных в raidz, при отдаче статики я
выжать не могу. Хотя может это нормальные цифры?
--
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster@xxxxxxxxxxxxx
ICQ# 166233339
http://softsearch.ru/
Без бэкапа по жизни.