Любой способ ускорить сопоставленный общий ресурс EFS в Windows?
Мы только что получили учетную запись AWS, и я тестировал EFS. Я создал EFS, подключил его к экземпляру Amazon Linux и настроил его для совместного использования в samba. Затем я смог сопоставить общий ресурс как диск в Windows 7 и Windows Server 2012, но все, что с ним связано, невероятно медленное (просмотр файлов, создание файлов, просмотр свойств общего ресурса - все). Я думаю, что это связано с тем, что mount является 8 EXA байтами.
Есть ли способ изменить размер общего ресурса или разбить его на более мелкие части, либо монтировать его в экземпляре, либо в Samba?
Есть ли способ изменить размер EFS напрямую? Мы никогда не будем использовать 8 экзабайт!
Есть ли способ сказать, что это делает что-то медленное, кроме размера?
Нам действительно нужно иметь возможность отобразить это как диск в Windows.
3 ответа
У нас были похожие проблемы, и мы нашли решение для них. Мы смогли сузить проблему до того, что SAMBA не сможет своевременно сообщить о размере EFS. В частности, samba не может выполнить sys_get_nfs4_quota(), время ожидания составляет около 60 секунд.
Чтобы преодолеть эту проблему, мы добавили в samba собственный скрипт, который мгновенно сообщает о 8 эксабайтах, не пытаясь вычислить размер. Учитывая, что это неограниченная EFS (теоретически), указанный размер не имеет значения, и возвращение фиксированного числа в порядке. Это решает 60 секундный тайм-аут.
Для этого создайте файл в / etc / samba / samba-dfree и добавьте две строки ниже:
#!/bin/bash
echo "8000000000 8000000000"
Затем в файле конфигурации samba добавьте следующие параметры либо в глобальный раздел, либо в конкретный раздел монтирования EFS, в зависимости от ваших потребностей:
dfree command = /etc/samba/samba-dfree
dfree cache time = 60
Сохраните файл конфигурации. Перезапустите SAMBA, и задержка должна исчезнуть. Надеюсь это поможет.
EFS работает по системе кредитов IO, эти кредиты генерируются постоянно в течение дня в зависимости от количества места, которое вы используете в EFS.
Каждый раз, когда вы читаете или пишете на том EFS, вы потребляете эти кредиты. Если на вашем балансе нет кредитов на ввод-вывод, операции чтения и записи будут ждать, пока вы их не сделаете.
Я думаю, что вполне вероятно, что вам удалось использовать все свои кредиты, и фоновый ввод-вывод продолжает истощать ваши кредиты, сохраняя ужасную производительность.
Вы можете проверить количество кредитов на томе EFS, проверив cloudwatch.
Просто чтобы прояснить это немного больше. Если бы вы использовали только 1 ГБ на диске EFS, каждый раз, когда вы читали / писали со скоростью, превышающей 50 КБ / с, вы сжигали кредиты, а всякий раз, когда вы читали / писали со скоростью ниже 50 КБ / с, вы генерировали кредиты.
Для сравнения, имея 10 ГБ на диске EFS, вы сможете поддерживать 500 КБ / с.
Я использую EFS с одним сервисом и обнаружил, что мне нужно сгенерировать примерно 80 ГБ необработанных бесполезных данных, которые просто находятся на диске EFS, чтобы сгенерировать достаточно кредитов ввода-вывода, чтобы мое приложение могло использовать общий ресурс.
Я установил будильник cloudwatch, чтобы уведомить меня, если мои кредиты когда-нибудь упадут ниже порогового значения, чтобы дать мне время добавить еще несколько "бесполезных данных" на диск EFS, чтобы позволить мне поддерживать обычную производительность.
Я рекомендую прочитать официальные предложения Amazon по масштабированию пропускной способности EFS, если вы считаете, что это влияет на вас.
У меня похожий медленный доступ через общий ресурс samba, установленный на Windows. Я получаю хорошую производительность (по крайней мере, доли секунды доступа при навигации по каталогам и т. Д.) На EC2. Windows занимает несколько минут, чтобы стать доступным из представлений "мой компьютер" / "этот компьютер" подключенных дисков - хотя, кажется, она работает довольно быстро, когда я нахожусь в каталоге.
Итак, неужели это что-то глупое, как Windows, пытающаяся определить размер файловой системы с 8 эксабайтами?
Использование cmd, кажется, поддерживает это. Войдите в файловую систему и запустите "dir", после чего появятся каталоги с большой задержкой, прежде чем появится "free bytes free"
Я ценю, что это не ответ, надеюсь, что это может быть полезной информацией для кого-то более способного, чем я