TL; DR: это потому, что SSD лжет вам и говорит, что запись сделана раньше, чем это. Это не может сойти с рук то же самое для чтения.
более длинная версия ответа-кэширование записи.
начнем с случая QD1. SSD сообщит о завершении записи в ОС, как только получит данные и сохранит их в кэше локально на диске, но до того, как он фактически запишет их в NAND. Это имеет большое значение, потому что на самом деле запись данных в NAND происходит довольно медленно. Для чтения он фактически должен прочитать данные из NAND, прежде чем он сможет отправить его обратно (если только он не прочитал его раньше и все еще имеет его в кэше, но это очень маловероятно при случайном чтении).
недостатком этого является то, что перед лицом внезапной потери мощности может быть потеря данных, записанных на SSD, но которые еще не сделали это на NAND. Некоторые SSD предприятия включают супер конденсатор который хранит достаточная сила закончить написать данные в тайнике к NAND в случае неожиданных потерь элекпропитания.
вы видите то же самое для жестких дисков, потому что они также делают кэширование записи. Они просто не так агрессивны по этому поводу. Почему SSD так агрессивен? Чтобы ответить на этот вопрос, нам нужно перейти к рассмотрению случая QD32, который является более сложным и более интересным.
Это не правда, что вы говорите, что случайные чтения, как правило, быстрее, чем случайные записи в QD32. Это зависит от того, какой именно SSD, на которые вы смотрите.
Если вы посмотрите на 4K QD1 случайных чтений на многих SSD SATA все они, кажется, выполняют в диапазоне 20-30 МБ / с. Почему так? Это за 4K QD1 случайно читает в основном про задержки, а не пропускная способность. Задержка происходит из трех частей:
- задержка интерфейса SATA / AHCI, которая включает в себя указание диску, что делать, и отправку данных.
- сам контроллер должен выяснить, что делать с данными и инструкциями получила.
- время, необходимое для фактического чтения или записи данных в NAND die.
ни один из 1. или 3. многое изменилось за долгое время, и именно поэтому случайные чтения 1K QD1 также не сильно изменились.
недавний переход на твердотельные накопители с SATA/AHCI на PCIe / NVMe значительно сократил задержку 1., поэтому некоторые m.2 и PCIe SSD в последнее время показывают большие улучшения здесь.
одна вещь, контроллер SSD может сделать значительно справка с задержкой читается или записывается в несколько плашек NAND параллельно, и таким образом маскирует большую часть задержки 3. Если вы делаете QD32 4K случайных чтений с NCQ SSD может обслуживать запросы чтения из строя и убедитесь, что он читает от столько NAND умирает параллельно, насколько это возможно.
для QD32 4K random пишет SSD делает что-то под названием write combining. Когда много малые пишут запросы приходят в регулятор SSD тайники они по месту и когда большой достаточно буфер записи создали контроллер разбивает его на куски красиво размера и записывает куски в несколько NAND умирает параллельно, снова, чтобы помочь замаскировать задержку NAND. Еще одним преимуществом комбинирования записи является то, что большинство твердотельных накопителей в настоящее время имеют размер страницы (наименьшее количество, которое может быть прочитано или записано) больше 4k, а объединение записей до тех пор, пока вы не достигнете размера страницы, помогает избежать большого усиления записи. Именно для того, чтобы сделать эти вещи, что SSD настолько агрессивны в кэшировании записи.