05.01.2013 14:50, greenh пишет:

>>> 4 января 2013 г., 15:10 пользователь Eugene Grosbein
>>> <[email protected]> написал:
>>>> sysctl vfs.ufs | fgrep mem
>>>
>>> vfs.ufs.dirhash_lowmemcount: 0
>>> vfs.ufs.dirhash_mem: 53137380
>>> vfs.ufs.dirhash_maxmem: 80646144
>>
>> Это в момент высокого потребления system time и высокого LA?
>> С одной стороны, упирания в maxmem нет, с другой - текущее потребление
>> dirhash в более чем 50MB это очень много и подтверждает предположение
>> о существовании каталога с огромным количеством файлов.
>>
>> Такие каталоги делают некоторые php-движки, накапливая в них огромное
>> количество устаревших сессионных файлов и пытаясь удалять старые сессии
>> не фоновым процессом, а непосредственно во время обработки юзеровского
>> HTTP-запроса. Этот braindamage лечится только отключением такого поведения 
>> движка
>> (чтобы он во время выполения запросов не пытался заниматься посторонними 
>> делами
>> типа очистки сессионного каталога) плюс переключением движка на хранение
>> сессий в структуре каталогов вместо одного плоского. A чистку старых сессий
>> выполнять cron'ом.
> 
> Нет, это не в момент высокой нагрузки, т.к. ситуация
> стабилизировалась, и поймать ее пока не получается.

Повторится.

> Проект действительно содержит огромное количество файлов картинок,
> раскиданых по папкам, и с этим, увы, ничего сделать нельзя.

Раскиданных по папкам это хорошо. Плохо, когда на UFS в одной папке
очень много файлов, с этим нужно бороться. Либо уходить с UFS, на ZFS например.

> Сессии проекта представляли собой большую проблемы и давно вынесены в мемкеш

Тоже вариант (c). Вместо того, чтобы нормализовать работу приложения, можно 
обкладываться кешами.

Ответить