Мы запускаем nfs над кластером isilons и периодически испытываем значительную задержку при создании каталога на одной машине и чтении на другой (около 30 секунд).
Это происходит только тогда, когда сеть очень загружена, но было высказано предположение, что запуск ls в родительском каталоге перед попыткой чтения нового каталога заставит NFS повторно кэшировать.
Звучит правильно?
Похоже, вам нужно настроить параметры монтирования acdirmin / acdirmax на ваших клиентах, чтобы изменить верхнюю и нижнюю границы возраста кеша информации о каталоге. Эти 30 секунд соответствуют значению acdirmin по умолчанию, равному 30 секундам, что означает, что информация должна находиться в кеше не менее чем за 30 секунд, прежде чем клиент решит выйти и обновить ее.
Посмотрите, помогает ли настройка acdirmin до 15 или 10 секунд.
Кроме того, "ls" может помочь потому, что он вызывает вызов stat () на "." что потенциально могло сделать кеш для этого dentry недействительным. Я помню, что нам приходилось модифицировать некоторые из наших инструментов для stat () файла или каталога перед open (), чтобы убедиться, что этот элемент был там для некоторых из наших материалов NFS.
Так это другие клиенты замечают, что файл был создан? (или включает ли это изменения в том, сколько данных содержат файлы).
Все операции находятся в одном каталоге, поскольку у isilons есть проблемы с производительностью метаданных в одном каталоге.
Вы уверены, что это не сервер, записывающий файл, который выполняет компьютер, если вы войдете в isilon и посмотрите каталог с «устройства», вы увидите, что файлы появляются на сервере в то же время, когда клиент говорит, что он напишите это.
Из любопытства, две машины монтируют один и тот же изилоновый кирпич (хотя это не имеет значения, это было бы интересно).
Какие у вас есть варианты крепления? (Имеет ли значение nfs v2 (скорее любопытство, у него нет readir +))