ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Дотюнился... Стран ности в iostat



On Fri, Nov 28, 2008 at 03:27:05PM +0300, Anton Yuzhaninov wrote:

> On 28.11.2008 14:26, Dmitry Morozovsky wrote:
>  > Осторожно: при блоке больше чем 16к у фри из-за фрагментации buffer 
>  cache может
> >случится deadlock. :(
> 
> А можно про это поподробнее?

Подробности там такие:

Дисковый буфер-кэш (Buff в top) работает с блоками по 16К.
Если есть файловая система с блоком 32/64К, то нужно 2/4 последовательных
блока. Если на файловую систему с блоком 16К идёт много записей, то
в один прекрасный момент буфер-кэш фрагментируется настолько, что
нельзя найти 2/4 последовательных свободных блока. Deadlock заключается
в том, что
1) записью грязных блоков (в том числе и 16К) занимается syncer,
2) а syncer в этот момент хочет выделить 2/4 последовательных блока
   для записи 32/64К блока и ждёт в состоянии nbufkv.

Если бы syncer мог отложить этот блок на попозже и записал бы кучу грязных
16К блоков, то проблемы бы не было. Ещё вариант - держать специальный большой
буфер на такой случай.


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.