Хотя теория операции SSD должна сделать это более надежным, чем жесткий диск, технология и получающиеся продукты являются незрелыми.
Вы должны ожидать, что SSD будут иметь интенсивность отказов, подобную любому электронному компоненту. Так как последствия потери данных часто более серьезны, чем последствия времени простоя из-за неудавшегося ЦП, дублирование имеет больше смысла. Реалистично, SSD на уровне конечного пользователя будут иметь большую интенсивность отказов, чем ожидалось, потому что они так плохо сделаны, и высокопроизводительные SSD будут иметь большее, чем ожидаемая интенсивность отказов, потому что они - новейшая технология.
Даже если данные не важны, время простоя и работа, вызванная путем восстановления системы, могут быть значительными. Я работал в одной среде, где горстка системных администраторов управляет многими сотнями систем с исключительно накопителем большой емкости. Была однажды вера, что было приемлемо иметь нерезервированное устройство хранения данных для неважных легко восстанавливаемых данных. К счастью урок относительно того, почему это неправильно, был правильно извлечен. Восстановление системы от сбоя диска связывало системного администратора в течение многих часов. Снижение расходов в цене диска было ничем по сравнению с отходами в оплате кому-то для восстановления системы.
Варьируется на файловую систему, http://en.wikipedia.org/wiki/Comparison_of_file_systems
Это зависит, с каким количеством inodes файловая система была создана. Выполнение
df -i
даст Вам количество свободного inodes. Это - практический предел того, сколько файлов файловая система и следовательно каталог может содержать.
Во всех текущих файловых системах Unix каталог может содержать практически неограниченное количество файлов. Принимая во внимание, что "неограниченный" ограничен дисковым пространством и inodes - независимо от того, что заканчивается сначала.
С более старыми проектами файловой системы (ext2, UFS, HFS +) вещи имеют тенденцию становиться медленными, если у Вас есть много файлов в каталоге. Обычно вещи начинают становиться болезненными приблизительно 10 000 файлов. С более новыми файловыми системами (ReiserFS, XFS, ZFS, UFS2) у Вас могут быть миллионы файлов в каталоге, не видя общие узкие места производительности.
Но наличие такого количества файлов в каталоге не хорошо тестируется и существует много инструментов, которые приводят это к сбою. Например, периодические сценарии обслуживания системы могут блевать на нем.
Я счастливо использовал каталог с несколькими миллионами файлов на UFS2 и не видел проблем, пока я не хотел удалить каталог - который занял несколько ДНЕЙ.
Я предполагаю, что Вы думаете о хранении большого количества файлов в одном месте, нет?
Большинство современных файловых систем Unix может поместить много файлов в одном каталоге, но операции как следующие пути, перечислив файлы, и т.д. включить линейный поиск через список файлов и стать медленным, если список становится слишком большим.
Я, кажется, вспоминаю слушание, что несколько тысяч - слишком многие для наиболее практических применений. Обычно решение состоит в том, чтобы разбить группировку. Таким образом,
/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/
и храните свои файлы в соответствующем подкаталоге согласно хешу их basename
. Выберите удобный хеш, первый символ мог бы сделать для простых случаев.
Cristian Ciupitu пишет в комментариях, что XFS и возможно другие очень новые файловые системы, используют log(N)
доступные для поиска структуры для содержания содержания каталога, таким образом, это ограничение значительно улучшено.
ext3
один из наиболее распространенных форматов файловой системы Linux становится действительно вялым, если Вы имеете вокруг 20k + файл в каталоге. Независимо от того, сколько это может содержать, необходимо постараться не иметь это много файлов в одном каталоге.
Из комментария Вы уехали, я думаю, что Вы действительно не заботитесь о том, сколько файлов/папок Ваш FS может разместить.
Необходимо, вероятно, рассмотреть использование ModRewrite и перезаписи site.com/username на site.com/?user= или что-то вроде вида и хранить все данные в базе данных. Создание одной папки на пользователя обычно не необходимо (и не хорошая идея).
Тем не менее каждая файловая система имеет пределы, и df
может сказать Вам, сколько inodes доступно на каждом разделе Вашей системы.