У меня есть простое облако AWS, использующее серверы nginx (EC2) и диск NFS для хранения файлов CMS (EFS). У Amazon есть знаменитые кредиты, и у меня закончились кредиты в облаке с очень низким трафиком. После расследования выясняется, что EC2 наводняет EFS запросами метаданных. Я просто не знаю как и почему?
Все файлы в NFS имеют размер 8 ГБ, это все файлы PHP. Статические файлы выгружаются в S3. Трафик между EC2 и EFS составляет около 1 МБ в секунду, однако трафик метаданных составляет 5 МБ в секунду! Это всего лишь 100-300 МБ трафика метаданных в минуту !!!
После проверки nfsstat и сброса трафика выясняется, что 90% этого трафика - это запрос и ответ GETATTR.
Но, наблюдая за EC2, процессоры почти спят, поэтому обработка 5 МБ в секунду звучит нереально. Не говоря уже о метаданных 5 МБ для передачи 1 МБ.
Я хотел бы выполнить еще один поиск, но мои знания и Google закончились, поэтому не знаю, где отсюда. Пытался использовать lsof и nsfstats и не могу найти, что в мире требует столько метаданных. Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: если вы ищете решение для исчерпания кредитов AWS EFS по этой или аналогичным причинам - кредиты EFS основаны на занимаемом вами пространстве. Решение (от службы поддержки AWS) - создать фиктивные файлы для увеличения вашего кредитного баланса. В моем случае добавление 50 ГБ «пустого» занятого пространства помогло с помощью команды:
dd if=/dev/zero of=/path/to/efs/dummyfile bs=1G count=10
Выше будет создан «пустой» файл размером 10 ГБ на EFS, что увеличит ваши кредиты.