Я пытаюсь понять все соответствующие последствия использования значения --max-obj-size при созданииs3qlфайловая система. Мне еще предстоит найти полное описание последствий этой опции, но мне удалось собрать воедино несколько фрагментов из документации и дискуссионных групп.
В основном, я нашел причины использовать большие значения --max-obj-size, что заставляет меня задуматься, почему бы не использовать произвольно большое значение (10 МБ? 100 МБ? 1 ГБ?):
- Меньшие значения означают, что используется больше «инодов» и снижается производительность базы данных SQLite (поскольку для того же количества файлов требуется больше записей инодов).
- Меньшие значения могут ухудшить пропускную способность (особенно дляпоследовательное чтение).
С версии 1.8журнал изменений:
На самом деле, небольшой размер блока S3QL ненетимеют какие-либо преимущества перед большим размером блока при хранении большого количества маленьких файлов. Однако небольшой размер блока серьезно снижает производительность при хранении больших файлов. Это происходит потому, что S3QL эффективно использует динамический размер блока, а значение --blocksize merperformanceely указывает верхний предел.
На данный момент единственные преимущества, которые я обнаружил или представил для блоков меньшего размера, это:
- Меньше пропускной способности, используемой для перезаписи части файла
- Возможно, лучшая дедупликация
Параметр --min-obj-size не влияет на дедупликацию. Дедупликация происходит до группировки блоков.
Параметр --max-obj-size влияет на дедупликацию, поскольку он неявно определяет максимальный размер блока.
Найденныйздесь:
Может ли кто-нибудь дать краткий обзор компромиссов, на которые приходится идти при выборе большего или меньшего значения --max-obj-size при создании файловой системы s3ql?