Данная статья является продолжением ранее написанного обзора.
Причины написания данного дополнения - попытка ответить на вопросы, которые находятся вне пределов тестирования нового накопителя. Новый накопитель хорош тем, что он пуст, чист и потому быстродействие, измеренное тестами, является максимальным, предельно достижимым и, вообще говоря, не вполне реальным. Вряд ли сценарии эксплуатации пустого накопителя являются распространёнными.
Попытаюсь воспроизвести ситуацию типовой эксплуатации накопителя, заполнив пространство (фильмами, что может быть важно) на 2/3 доступной пользователю ёмкости.
Перед проведением тестов важно сделать несколько оговорок.
Во-первых: на диске находятся фильмы, файлы большого размера общим числом всего-то пару десятков. Это не совсем идентично пользовательским данным, и, фактически, служит лишь балластом для занятости свободного пространства. Разные пользователи могут занять пространство различным образом - фильмами, музыкой или разнообразными документами в формате PDF/DOCX (видел я файлопомойки в десятки гигабайт из таких файлов) и поведение твердотельных устройств под нагрузкой может существенно отличаться в случаях разнотипности заполнения дискового пространства. Фрагментацию, товарищи, ещё никто не отменял.
Во-вторых: после заполнения дискового пространства необходимо выждать существенное время, чтобы накопитель выполнил все процедуры по упорядочиванию данных в ячейках памяти, высвободив весь занятый SLC-кэш ... а он не всегда делает это в нужное пользователю время.
Вот, к примеру, как выглядит запись большого количества файлов на данный накопитель (напомню, размер SLC-кэша у него составляет примерно 1/4 от свободного пространства, т.е. не более 60 Гигагабайт).
Начинается копирование достаточно бодро (не смотрите на скорость записи, файлы копируются с внешнего USB устройства, а он играет как умеет).
После исчерпания SLC-кэша начинается свистопляска: накопитель вынужден продолжать запись и одновременно разгребать заполненный SLC-кэш.
Скорость записи при этом существенно изменяется от более-менее приемлемых значений до значений куда как менее приемлемых.
Именно об этом я и говорю каждый раз, когда измеряю размер SLC-кэша: после нагрузки, превышающей объём SLC-кэша, накопителю необходимо время, чтобы "прийти в себя."
Но проблема в том, что контроллер накопителя "себе на уме" и даже после окончания записи может не начать упорядочивать данные и очищать SLC-кэш. Он вообще может отложить это мероприятие "в дальний ящик" и заняться этими процедурами в самый неподходящий момент. Даже принудительный "пинок" через фирменное ПО несущественно улучшает ситуацию.
Всё это я рассказываю к тому, чтобы плавно подвести к следующей мысли: возможно, последующие замеры были проведены "не слишком чисто" и результаты быстродействия не соответствуют реальным - возможно, быстродействие накопителя могло быть больше. Меньше точно могло быть, если бы я не выжидал несколько часов с целью заставить накопитель "подготовиться к новой долгой нагрузке", а вот больше - вопрос.
Итак, тесты накопителя, заполненного на 2/3.
Достаточно очевидно, что работать быстрее от заполнения данными накопитель не стал. Тем не менее, общее снижение быстродействия можно считать несущественным, особенно с учётом вероятной погрешности измерений.
Возможно, в случае заполнения накопителя большим количеством файлов куда как меньше размера, а равно как продолжительная эксплуатация в режиме "записал-стёр-записал другое-стёр и так далее" заметно снизит быстродействие устройства, но интерес к подобного рода экспериментам у меня отсутствует - слишком затяжное мероприятие со вполне очевидным исходом: точную формулу деградации производительность в зависимости от типа хранящегося контента и интенсивности эксплуатации получить не удалось.
Всё дело в размере, как говорил один психиатр, и, добавлю от себя, умении им воспользоваться. Накопитель ADATA SU630 240GB в доставшейся мне конфигурации (контроллер и микросхемы памяти) в состоянии нулевой заполненности имеет измеренный размер SLC-кэша примерно 60 Гигабайт. Гипотетически это позволяет предположить, что размер SLC-кэша будет оставаться постоянным и составлять четверть свободного пространства. Измерить размер SLC-кэша после заполнения устройства ещё сложнее, чем оценить быстродействие и причины те же самые: нельзя просто так взять и сказать контроллеру накопителя: ты сейчас быстренько очисти весь кэш, а потом, когда я буду запускать тест на максимальную нагрузку, ты наоборот, не пытайся его очищать сразу же, чтобы мои тесты были максимально "чистыми". Увы, у контроллера накопителя свои алгоритмы жизнедеятельности.
Попытка записи файла размером 20 Гигабайт на накопитель, заполненный на 2/3, оказалась не слишком удачной. Предположительно, при 75 Гигабайтах оставшегося свободного пространства, SLC-кэш устройства должен был составлять примерно 17-18 Гигабайт, и запись файла размером 20 Гигабайт должна была продемонстрировать ровную "полочку" на скорости в 400 МБ/с почти до конца файла ... но вот проблема в том, что у контроллера накопителя были свои соображения по поводу размеров и запасов и после 3.5 Гигабайт записи на максимальной скорости он резко начал разгребать завалы, а скорость записи стала крайне нелинейной. Дважды повторив тест с интервалом в несколько часов я убедился, что дело не в неочищенном ранее SLC-кэше, а в его динамическом уменьшении по мере заполнения пространства.
Удалив часть файлов с накопителя и сократив его наполнение до 1/3 от доступного пользователю пространства я повторил тест.
И вот здесь заметно, насколько сразу же вырос SLC-кэш: при заполнении накопителя на 75 Гигабайт из 225 Гигабайт возможных, он способен записать на максимальной скорости чуть менее 16 Гигабайт.
Пожалуй, дальнейшие исследования быстродействия накопителя при занятости его файлами разного размера и количества нецелесообразны. Деградация производительности по мере заполнения данными неизбежна, и заключается она как в частичном снижении скорости записи (увы, контроллер накопителя не имеет дополнительной микросхемы DDR3-типа в качестве ОЗУ что затрудняет его работу), так и в уменьшении объёма данных, который накопитель способен записать на максимальной скорости (что скорее всего заложено в его прошивке).
К сожалению, не имея данных, доступных лишь проектировщику прошивки, невозможно точно сказать, на какой процент упадёт производительность устройства при заполнении его произвольным объёмом данных. Могу лишь сказать, что в типичных сценариях эксплуатации этого накопителя наиначальнейшего уровня стоимости никаких аргументов против его существования я не обнаружил. Накопители на основе QLC памяти всё также безусловно лучше, чем жёсткие диски "классического типа" как по времени доступа, так и скорости записи (хотя и с некоторыми ограничениями). Со скоростью чтения же у твердотельных накопителей всё настолько лучше, что и говорить нечего - типичному пользователю персонального компьютера замена жёсткого диска на SSD принесёт лишь восторг.
И последнее ... по итогам обмена информацией с Вадимом Очкиным, выяснилось, что контроллер, применённый в накопителе - не SMI2258XT. Ну, или точнее говоря, не совсем 2258 - здесь установлен контроллер 2259, аналогичный используемым в накопителях intel 545 (и только в них, что характерно), лишённый, правда, буфера памяти. Фактически, мы имеем дело с контроллером 2259XT, правда, не ясно лишь одно - это самостоятельная микросхема (по аналогии с 2258XT) или просто полноценный контроллер 2259, лишённый микросхемы кэш-памяти.
В любом случае, для конечного пользователя фактическое применение контроллера 2259 при указанном в прошивке 2258XT абсолютно ничего не меняет, в моих тестах никакой принципиальной разницы между Plextor M8VC 128GB и Intel 545 128GB я не заметил, а значит, и разницы между контроллерами 2258 и 2259 фактически нет.