Назад | Перейти на главную страницу

Amazon EFS зависает при попытке перечислить файлы внутри

При выполнении ls внутри точки монтирования Amazon EFS он просто зависает.

Раздел устранения неполадок EFS на AWS Устранение неполадок EFS

Упоминает следующее:

Крепление не отвечает

Монтирование Amazon EFS не отвечает. Например, такие команды, как ls, зависают.

Действия, которые необходимо предпринять

Эта ошибка может возникнуть, если другое приложение записывает большие объемы данных в файловую систему. Доступ к записываемым файлам может быть заблокирован до завершения операции. Как правило, любые команды или приложения, которые пытаются получить доступ к файлам, в которые выполняется запись, могут зависнуть. Например, команда ls может зависнуть при переходе к записываемому файлу. Это связано с тем, что некоторые дистрибутивы Linux используют псевдоним команды ls, поэтому она извлекает атрибуты файла в дополнение к перечислению содержимого каталога.

Чтобы решить эту проблему, убедитесь, что другое приложение записывает файлы в точку монтирования Amazon EFS и находится в состоянии бесперебойного сна (D), как в следующем примере:

$ ps aux | grep large_io.py

корень 33253 0,5 0,0 126652 5020 точек / 3 D + 18:22 0:00 python large_io.py / efs / large_file

Убедившись, что это так, вы можете решить проблему, дождавшись завершения другой операции записи или реализовав временное решение. В примере с ls вы можете использовать команду / bin / ls напрямую вместо псевдонима, что позволит продолжить выполнение команды без зависания записываемого файла. В общем, если приложение, записывающее данные, может периодически вызывать сброс данных, возможно, с помощью fsync (2), это может помочь улучшить отзывчивость вашей файловой системы для других приложений. Однако это улучшение может происходить за счет снижения производительности при записи данных приложением.

Я проверил, не пишет ли что-нибудь на него, но обнаружилось только одно:

корень 43556 0,0 0,0 124356 756 баллов / 6 D + 19:15 0:00 ls --color = auto / efs /

корень 43558 0,0 0,0 112664 972 точек / 3 S + 19:16 0:00 grep --color = auto efs

Так что, насколько я знаю, в EFS ничего не пишется. Могу ли я рассмотреть другие причины этого?

Я также попытался смонтировать EFS на отдельном компьютере, чтобы убедиться, я также протестировал другой компьютер в другой зоне доступности по сравнению с другой точкой монтирования в этой зоне доступности и увидел такое же поведение.

Обновить:

lsof показывает:

nfsv4.1-s 113422 root cwd DIR 202,1 4096 128 /

nfsv4.1-s 113422 root rtd DIR 202,1 4096 128 /

nfsv4.1-s 113422 txt cwd unknown / proc / 113422 / exe

Он исчезает при отсоединении и снова появляется после установки.

Учитывая всю предыдущую информацию, сложно точно сказать, что происходит. Однако для работы вам потребуется монтирование Amazon EFS, поэтому:

Ваш lsof результаты показывают, что является вероятным псевдофайлом в файловой системе / proc. В какой-то момент этот процесс потерял свой исполняемый файл, и я подозреваю, что он пытается продолжить работу. Он исчезает при размонтировании, потому что команда lsof не видит том, а при повторном монтировании команда снова видит потерянный исполняемый файл. Вероятно, это процесс, поглощающий ресурсы. Когда вы запускаете ps команда, вы видите процесс 113422? Поскольку вы не сообщили, что запущено другое приложение, вы можете попробовать убить этот процесс.

Сначала я бы побежал ps -aux чтобы увидеть все запущенные процессы, включая фоновые, и посмотреть, сможете ли вы найти процесс 113422. Если да, то что он запущен? (Или вы думаете, что он запущен.) Если вам удобно остановить этот процесс, запустите kill -9 113422 и полностью прекратить это.

Повторите попытку вашей команды ls, и она должна работать нормально. Вы также можете использовать /bin/ls команда напрямую. Фактически, поскольку у вас так много маленьких файлов, я рекомендую использовать только этот метод, чтобы система не зависала в ожидании файла.

Что касается производительности, из вашего комментария похоже, что вы выбрали EFS из-за неограниченного размера файловой системы, поэтому, вероятно, EBS не был вариантом, хотя он может обеспечить лучшую производительность. У каждого вида свои плюсы и минусы. Однако, если вы продолжаете испытывать проблемы, возможно, вам поможет повторное посещение решения файловой системы.