Я хочу понять, как работает ядро, когда пользователь / приложение пытается создать файл в директории.
Справочная информация - у нас есть Java-приложение, которое принимает сообщения через JMS, обрабатывает его и затем пишетXML в исходящую очередь + локальный каталог.Вчера мы наблюдали необычные задержки при записи в каталог.В 'ls | wc -l' мы нашли> 300 000 файлов.Быстро обработал процесс и обнаружил, что он полон вызовов мьютекса (более 3/4 вызовов в потоке были мьютексами).
Поэтому я подумал, что создание нового файла занимает время, потому что система должнавремя проверять определенные вещи (например, имена файлов, чтобы убедиться, что можно создать новый файл с определенным именем) среди 300 000 файлов, а затем создать файл.
Я очистил каталог, и приложение возобновило нормальную работуУровни.
Мои вопросы
- Был ли мой анализ правильным (кажется, потому что приложение начало работать нормально после очистки)?
- Более импотрант, какработа ядра при попытке создать новый файл в каталоге.
- Можно ли отнести ненормальное количество вызовов мьютекса к большому количеству файлов в каталоге?
Большое спасибо J