Как стать автором
Обновить

Комментарии 40

Тема mmap не раскрыта.
Так mmap использует внутри тот же механизм: page fault при отсутствии данных, распределение памяти, чтение. Да и с асинхронностью тут туго. Когда-то много лет назад, в эпоху hdd, впервые узнав про mmap, я провёл серию тестов и пришёл к выводу что по крайней мере на линейном чтении mmap не быстрее стандартных api.
Прямо сейчас я работаю на ноутбуке с 5400.
У меня тормозит браузер + IDE. В IDE работать можно только приняв дозу успокоительного.

Имхо, для десктопных приложений корректная работа с IOPS не должна рассчитывать только на NVMe.

Ну уж в ноут-то можно поставить SSD. Это десктопы ретрограды вроде меня набивают многотерабайтниками на все слоты и порты, а в ноуте у SSD минусов нет.

Я не железячник. Я ни разу не разбирал свой ноут за 10 лет его службы.
Я ПК то стационарный собираю кнопками в интернет магазине.

Но в целом, когда в очередной раз всё колом встает, я склоняюсь к мысли, что возможно стоит поставить туда SSD =)
Неужели даже друга-компьютерщика нет, что вы десять лет мучаетесь?
Обычно я просто кладу ноут на полку до след. раза =)

Впрочем, судя по переписке — это странно? Он у меня больше для игр\видосиков был взят в своё время, с этими задачами он справляется до сих пор.

Грузить ОС с HDD в 2020 это очень странно. Если совсем нету 5 тысяч рублей, я не осуждаю, но если хоть где-то завалялись, то SSD — самый нужный и самый заметный апгрейд из всех возможных.

ОС грузится один раз, иногда один раз за неделю. Смысл это то ускорять?

Дело не только в старте ОС, но и в запуске программ, переключении режимов в этих программах, общей отзывчивости системы.
Я недавно год пропользовался ноутом с HDD (да, тоже со спящим режимом), прежде чем дошли руки апгрейднуть. Я знаю, о чём я говорю.

Вы правда за 10 лет ни разу не сидели за компом с ССД? Это же небо и земля. Я себе купил первый ССД те же 10 лет назад ажно за 10500 ещё тех рублей 80 гб, и ни разу не пожалел об приобретении, хотя я нищеброд из палаты мер и весов.
Есть у меня мощный стационарник с SSD. Только вот в кейсах со старыми игрушками или при просмотре фильмов-сериалов-ютуба — разницы нет.

Единственный реальный кейс, когда разница ощутима — чортовы исходники и все эти оптимизации для поиска по ним =)
Если говорите, что ноут для старых игров и фильмов — то откуда там IDE берется? А если ноут для IDE — поставитье SSD туда, и всё. Спор «как бы мне так сделать, чтобы ничего не делать, но стало хорошо».
Ну, иногда нужно быстро поправить код, а ты не дома.
IDE там запускается редко.
Ещё года 2-3 назад, я бы с вами согласился. На рабочем компе с SSD загружалась быстрее ОС и IDE, но работа приложений была практически одинаковой. Но на сегодняшний день, те же самые приложения, только с актуальной версией работают с задержкой доставляющий дискомфорт. Банальный вызов контекстного меню в Intellij в определённых ситуациях занимает 5+ секунд, повторный вызов мгновенно, как в старые добрые времена.

За 10 лет вы ноут ни разу не обслуживали?
Там же могут и диск заменить.


Боюсь спросить — в машину бензин заливаете, пепельницы высыпаете или меняете авто при переполнении? )

НЛО прилетело и опубликовало эту надпись здесь
Очень зависит от конкретного ноутбука. К сожалению, времена, когда для доступа чуть ли не к каждому компоненту у ноутбука был свой отдельный лючок, безвозвратно прошли. Сейчас попадается очень много моделей, которые разбирать надо полностью, причём еще и угадывая расположение пластиковых защёлок.
И если лет 10 назад я без зазрения совести советовал даме на удалёнке открутить то-то и то-то в её ноуте, после чего вставить в свободное гнездо платку, что мы ей прислали, то сейчас, увы, иногда и сам по часу разбираю особо «удачные» модели ноутов.
НЛО прилетело и опубликовало эту надпись здесь

У меня два десятилетних Acer. Один "тонкий" (что даже RJ45 "раскладной"), второй — "толстячок". У обоих, для замены HDD надо последовательно: снять клавиатуру, отсоединить экран, разъединить корпус (на защёлках), отсоединить с десяток шлейфов от системной платы (на толстячке ещё и видеокарту демонтировать), извлечь системную плату из нижней половины корпуса — и только тогда откроется доступ к диску. Когда менял HDD на SSD, был близок к тому, чтобы попытаться разыскать авторов конструкции для эмоционального объяснения их неправоты.

SSD, тем более NVMe — это хорошо и нужно. Но ПО должно быть работоспособным даже если пользователь грузится с DVD или USB 2.0 флешки, а не то что HDD.

Не стоит забывать ещё и про облака, где IOPS-ы масштабируются в зависимости от размера диска. На тысячах IOPS новые красивые API превращаются в тыкву.

А что если размеры буферов на файлы просто уменьшать? В конечном итоге, вовсе не обязательно читать 4кб, на 1кб данных. ОС считывает данные по кластерам, кластер при форматировании можно установить и в 1кб и в 512 байт. Если работает кеш, то размер кеша тоже можно установить в минимум. Дисковый кеш ОС вообще можно отключить. Это даст прирост на описываемых вами задачах с произвольным доступом без изменения архитектуры?

Сейчас у всех ходовых накопителей сектор 4к.
Если вы живете в мире Optane и NVMe накопителей и думаете что везде так, то это заблуждение. Для примера посмотрите на скорости SSD дисков в Azure. Даже самые производительные и дорогие имеют скорость меньше 10к IOPS, если говорить о среднем сегменте(128-256ГБ), то вообще будет около 500-1000 IOPS. А на Ажур хостятся огромное число приложений.
Я правда сам не понимаю почему так(т.е. USB3 флешка работает быстрее) но эта данность времени.
docs.microsoft.com/en-us/azure/virtual-machines/disks-types#disk-size-1
НЛО прилетело и опубликовало эту надпись здесь
Типа — диски быстрые, но присутствует «человеческий фактор» :)
Если речь про Azure, то «на всех уровнях» — это вряд ли: у MS асинхронный ввод/вывод и небуферезованные операции ввода/вывода были еще в самом первом ядре NT в далекие 90-е — видимо потому, что его делала команда разработчиков, пришедших с т.н. «мини-компьютеров» («мини» — это в сравнении с мейнфреймами, вообще-то это были устройства размерами со шкаф или комод) и принесшая оттуда тогдашние передовые разработки.
А вот что творится в слое виртуализации — про это я точно не скажу, особено учитывая, что в облаке все должно быть сильно оптимизировано в сторону снижения затрат.
Зато могу сказать про результат: сервер Exchange, который на земле неплохо живет и на обычных HDD на 7200 оборотов (в том числе и на виртуалке) — лишь бы они были отданы ему в эксклюзиве — в VM на Azure официально требует Premium Storage (т.е. вирутальные диски на базе SSD).
лишь бы они были отданы ему в эксклюзиве
вот видимо поэтому в облаке и требует SSD, т.к. хранилища шаредные, «отдать в эксклюзив» не получится.
Ну, пространство физического диска в виде одного виртуального отдать было бы одной VM несложно и в облаке. Но, полагаю, тут дело в другом — в дедупликации с целью экономии места. БД Exchange начиная с 2010 версии специально спроектирована на использование преимущественно последовательного (он же — линейный) доступа, то есть IOPSы как мера скорости произвольного доступа ей не особо нужны. В частности, если в прежних версиях Exchange хранил только одну копию вложенения для всех писем в БД его содержащих (такая вот внутренняя дедупликация на уровне приложения), то начиная с 2010 он хранит копию вложения для каждого письма вместе с письмом — чтобы их можно было прочитать, не перемещая блок головок.
А дедупликация — это отличное средство для преобразования последовательного доступа в произвольный. И на HDD это критически замедляет скорость чтения/записи.

Azure/AWS/GCP и не пытаются дать максимум производительности IO. Ну т.е. "неплохо бы", но не главный приоритет. Им нужна доступность и надёжность, масштабируемость и максимальная совместимость, желательно недорого — за это реально платят клиенты. А максимизация производительности явно конфликтует с нагруженной виртуализацией.

для примера посмотрите на скорости SSD дисков в Azure.
не стоит забывать, что апгрейд хранилки для небольшой фирмы — это купить пусть даже 20 дисков, вкрутить их настроить доступ недолго. Апдейт для Azure — это несколько датацентров сразу, чтобы предложить потом клиенту другой уровень услуги, фиг с ним с деньгами — это просто физически небыстрое дело!
Как я понял идея заключается в том, что если уже у вас есть Optane или NVMe, то можно оптимизировать работу с ними для конкретных задач. Или же придти к выводу, что какие-то конкретные задачи можно ускорить за счёт более быстрых накопителей и оптимизации работы с ними.

В большинстве случаев стандартных API достаточно, но в статье речь идет о том, как поступать, когда они становятся узким местом производительности.
с задержками, измеряемыми в единицах микросекунд

нет. для optane это десятки микросекунд, для nand (не важно nvme или sata) типичная задержка чтения около 100 мкс.

НЛО прилетело и опубликовало эту надпись здесь

это лучшее end2end, которое я видел в тестах. если накопитель A выдаёт в тесте время доступа 10 мкс, а накопитель B с тем же интерфейсом — 100 мкс, логично предположить, что разница определяется самими накопителями.

Ta-daa! Как будто выхода статьи ждали.


PS: Смешно наблюдать как чуть выше чувака всем хабром убеждают поставить SSD, и как он отчаянно под всеми предлогами отбивается от благодетелей, бггг.
Зачем вы его убеждаете, ему не надо, это ж очевидно )))
Если что — сам владелец 10-летнего Vaio vcpf223fx который как раз живёт на древнем же SSD.

PPS: OP пропустил важную вещь: Optane мог использоваться не как диск, а в качестве «расширителя» основной DRAM. Когда-нибудь техногии дойдут до прямого мэппинга сторажей в адресное пространство — тогда и будет круто.
Парсер сожрал ссылку. В общем Optane прекратили выпускать.
Спасибо за минус на ровном месте, ага.

прекратили выпускать десктопные optane. серверные живее всех живых, скоро обещают новую версию.


OP пропустил важную вещь: Optane мог использоваться не как диск, а в качестве «расширителя» основной DRAM. Когда-нибудь техногии дойдут до прямого мэппинга сторажей в адресное пространство — тогда и будет круто.

вообще-то оно уже есть, nvdimm называется (в том числе и на optane)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий