aio & Linux cache

Андрей Василишин a.vasilishin на kpi.ua
Вс Мар 27 03:39:17 MSD 2011


Всем привет!
Заметил, что с использованием aio + directio не используется системный 
кеш, так как оперативы стало в избытке решил сделать свой горячий кеш

none on /var/www/ram/flv type tmpfs (rw,size=10g,mode=1777)

По крону каждые 5 минут сравнивается список открытых файлов с размером и 
количеством коннектов к каждому, со списком в РАМ, удаляются ненужные и 
копируются нужные файлы. Проблема возникает на стадии удаления, пока 
нгинкс не отдаст последнему клиенту, последний кусок файла, он физически 
продолжает занимать место, тем самым не давая записать новый файл из-за 
недостатка места.
Вопрос: как сделать подобие  Linux cache, чтобы файл из рам-диска 
удалялся "мгновенно" или как сделать кеш средствами нгинкс?
Сейчас конфиг выглядит так:

        location /flv {
                  root   /var/www;
                  open_file_cache max=3000 inactive=120s;
                  open_file_cache_valid 30s;
                  open_file_cache_min_uses 2;
                  open_file_cache_errors off;
                  try_files
                         /ram$uri
                         /sata$uri
                             =404;
                  internal;
                  flv;
                  output_buffers  1 512k;
                  aio on;
                  directio  512;

          }


-- 
WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE



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