Pull to refresh
-9

Системный инженер

2
Subscribers
Send message
А победив, не будет поздравлять оппонента с хорошей игрой, а с удовольствием поглумится над поверженным противником.

Было время я серьёзно гонял в CS, и большинство игроков из СНГ после поражения выбрасывали порцию типа "Ах ты с… б… да я тебя урою на..." (причём совсем не подростки), в то время как адекватная реакция почти любого игрока вне СНГ была "GG, thank you!".


У меня сложилось впечатление что люди просто не отдают себе отчёт что это игра, и воспринимали всё что не соответствовало их ожиданиям как личное оскорбление.

За фрилансеров конечно обидно, но… как бороться со злоупотреблениями, или хотя бы выявлять оные? А ведь именно они обычно бич системы, особенно если система, вопреки традиции, действительно пытается сделать что-то хорошее и полезное.


Просто сразу очень много дворников вдруг станут админами ради льготной ипотеки (или даже отсрочки), и без экзаменов или хотя бы беглой проверки никто ничего не докажет — админы, в отличие от разработчиков, редко производят "продукт" который можно предъявить, да собственно и сам "продукт", коли таковой будет, ради такого дела можно аутсорсить в Индию или Китай, или даже локально (тем кому не нужны ипотека или отсрочка) — схем тут газиллион просто.

Компания не рекомендует эти камеры и не берет на себя ответственность за их использование после этого срока.

Пора бы уже законодателям ввести суровую ответственность за косяки компаний. Хороший прогрессивный штраф в процентах от оборота за каждый случай (если вовремя не среагировали, не пофиксили или не сообщили) быстро поможет решать проблемы.


Ладно бесплатный софт, там ясно что на "свой страх и риск", но любой платный продукт просто обязан включать в себя полную ответственность производителя в подобных случаях, причём независимо от того что написано в соглашении или документации — как с автомобилями, например.


Продукт станет дороже? Отлично, зато безопасней и даже вероятно надёжней. А то понанимют выпускников трёхмесячных курсов и сразу на рынок...

Ежедневно, ага. И это не считая того что пока он читается всё остальное замедляется в разы, даже если это RAID.


Единственное разумное использование таких дисков — это длительное хранение данных с редким чтением, с дедупликацией и "только дополнение" — по крайней мере отпадает вопрос бэкапов — при наличии RAID, разумеется.


Впрочем, страшно представить ребилд покоцанного RAID, это ж пару суток минимум уйдёт, а если дисков не сильно много — то ещё и с сильно урезанной производительностью всего массива. А если это ещё и любимый многими ZFS...

Сами подумайте — ИП за себя взносы в ПФР и ОМС делает. И налоги с дохода платят. Как это может быть хуже, чем взносы за сотрудника?

Возможно в РФ так, а в ряде стран ЕС и приближенных к ним это иначе — ИП платят только налоги с дохода без социальных отчислений (для них это добровольно, а не обязательно) — так что выгода для ИП есть если ему неважна пенсия и прочие социальные плюшки. ОМС вообще к налогам отношения не имеет и его наличие вообще никак к работодателю не привязывается, оно просто должно быть, даже у безработных.


Судя по описанию, в Сербии примерно также как и в Германии — если ИП получают основную часть доходов с одного клиента, то через определенное время его начинают считать сотрудником и вынуждают платить социальные взносы которые обычно платит работодатель но которые необязательны для ИП. При этом совершенно неважно где находится клиент, он вообще не интересует налоговую ибо это не его проблемы (что логично), все шишки упадут на ИП в случае чего.

Нет, не жду. Как раньше уже заметили, к людям похожие требования — только их выполняют страховые компании, чётко причём выполняют — если водитель виноват, то всем всё компенсируют, в полном объём плюс моральный ущерб, даже если водитель напился, ослеп и въехал намеренно (но имел страховку).


В случае же с Tesla, "водителем" является их творение, которое, безусловно, способно совершать меньше ошибок, не повторять их (в отличие от людей), также FSD быстрее, точнее и обладает большей информацией чем любой человек за рулём, так что вполне логично возложить на творцов ответственность за его действия, или найти страховую компанию которая её возьмёт на себя.


Как минимум, FSD должно вести себя по правилам на дороге, и в случае нарушения оных это явный косяк разработчика, со всеми вытекающими.


В частности, FSD должно соблюдать знаки но не настаивать на правах (типа уступить дорогу тому кто едет на красный, несмотря на свой зелёный), принимать все меры для исключения наездов на "маленьких" (пешеходы и двухколёсные), ни в кого не въезжать, не задевать в поворотах и при парковке, и т.д., и всё это в любых условиях — с поправкой на возможности сенсоров и физику движения, разумеется.


До тех пор пока всё это не будет гарантировано — за каждый косяк пусть платят по максимуму, это будет стимул всё исправить, ибо я вот совсем не уверен как поступит FSD если поедет на зелёный а кто-то будет ехать на красный, или если кто-то не уступит хотя должен. Да даже если на дороге будет банальный кирпич (не знак — реальный кирпич) или открытый но неогороженный люк или яма — как Tesla отреагирует? Сомневаюсь что объедет или остановится.


Можно конечно заявить что-то типа "человек тоже не смог бы в этой ситуации" — но это слабая отмазка — как я уже заметил выше, человек очень медленный и не видит даже четверти от того что видит FSD.


И самое главное — все характеристики FSD (время реакции, расстояние и углы обнаружения препятствий, зависимость от погодных условий, вероятности ошибок etc) должны быть частью спецификаций (а не чёрным ящиком) — при их несоблюдении — тоже штраф.


Плюс, вся собранная статистика и телеметрия во всех аварийных и спорных случаях должна быть прозрачна и доступна (в анонимизированном и агрегированном виде как минимум, но более детально чем "одна авария на миллион километров"), дабы было ясно как продвигается дело, а то реально чёрный ящик получается — кто-то что-то делает, не говорит как и почему, но просит верить на слово.


Пусть в нынешнем состоянии FSD гораздо эффективней и более безопасно чем человек — но суровое обязательство отвечать за обещания заставит Tesla (и других вендоров тоже) сделать всё это ещё лучше гораздо быстрее чем если его не будет, причём с высокой вероятностью они будут делать всё это в песочнице перед выпуском в массы, вместо тренировок на живых людях (а именно это им и нужно сейчас), да ещё и за счёт водителей.

Вопрос же просто решается — Tesla получает карт-бланш на FSD, но обязуется, в случае аварии по вине FSD (т.е. Tesla въехала, а не в неё), покрывать все расходы всех пострадавших сторон плюс дополнительная компенсация в $50 млн каждому пострадавшему, без вопросов и отмазок.


Сразу станет ясно, готов на самом деле FSD или нет.

Какая тут связь с сильным ИИ? Вообще никакой.

Связь в том что вы написали про необходимость "миллионов лет эволюции с миллионами похожих существ". Если в ближайшие лет 100 создадут сильный ИИ — то появится (нечеловечский) разум, осознающий себя — без миллиона лет эволюции и без "сородичей" (по крайней мере в первое время). И если он начнёт и дальше эволюционировать, то этот процесс будет ещё более ускорен.


сценарии типа "Сильный ИИ вышел из-под контроля и захватил власть над миром" практически невозможны

Это как сказать. Вот выше уже привели пример, но кратко — власть как таковая может и не быть его целью, но достижение им какой-то (более прозаичной) цели может нам показаться "захватом власти" из-за конфликта интересов (де-факто), к тому же ИИ может даже не успеть осознать наличие конфликта, а мы — не успеем ему это объяснить.


И пусть у него не будет необходимости проходить "естественный отбор" — но вот желание развиваться (для которого нужны ресурсы или эксперименты) и отсутствие совместимых с человеческими моральных и этических принципов (откуда им взяться?) вполне могут привести к чему угодно. Воспитать его "правильно" скорее всего не получится — даже современные слабые ИИ становятся чёрным ящиком после любого обучения и ведут себя не всегда предсказуемо, что уж тут говорить о существе которое осознаёт себя.


В конце концов раз уж люди пытаются отбирать друг у друга что угодно или причинять зло, причём не всегда намеренно и иногда не осознавая этого, то что мешает это сделать другому разумному (и физически способному на это) существу?


Причём, людям на это не нужны миллионы лет — они такими становятся за не более чем десятки лет в процессе жизни (и это практически "с нуля" — просто обладая разумом, без памяти поколений), а сильный ИИ будет примерно таким же как любой человек, а то и "быстрее, выше, сильнее".


Возможен впрочем и совершенно другой вариант — он наберётся информации, опыта, "закуклится" и уйдёт в себя занимаясь чем-то типа поиска последних четырёх знаков числа пи, совершенно никак не коммуницируя с внешним миром и не проявляя себя — вот вам аналог "призрачного разума", т.е. такого который вроде как и есть но совершенно незаметный кому-либо (пока есть энергия) — чем не вариант с разумной планетой (если игнорировать разницу в размерах)?

Правда? То есть сильного ИИ нам в ближайший миллион лет не ждать?


Нет, я не сторонник креационизма, просто не думаю что можно всех под одну гребёнку — понятия "разум" и "самосознание" мы интерпретируем исключительно с человеческой точки зрения, которая совсем необязательно является единственно верной или возможной.


К тому же, даже тут нет единого мнения, да и если подумать, сколько в галактике звёзд и планет — неужто не потянет на миллионы? В центре они уж точно кучкуются, да и естественный отбор как бы тоже есть. А с учётом миллиардов лет её существования… эволюция вполне может иметь место быть, просто мы не в состоянии это увидеть или понять.


I want to believe ©

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


Плюс к этому, разница, очевидно, заключается в количестве "верующих" и распостранённости, не говоря уже об осязаемости, ликвидности и возможности чисто физического использования.


Всё что связано с "криптой" — виртуально до мозга костей, буквально — это всё не будет работать в условиях когда нет компьютеров, связи или электроэнергии, крипту легко потерять и трудно найти (пока нет регулирования, и госгарантий обеспеченности).


Да, в случае отсутствия связи безналичные (карточные) расчёты тоже невозможны, но для этого есть наличные и чеки, т.е. "оффлайн" версия — крипта же не имеет такого свойства в принципе, да и какой вообще смысл в "валюте" ценность которой зависит от твита в интернете? Нет, конечно для трейдеров и компании это самое то, но явно не для обычных граждан, коих большинство.


И наконец — пока вы (и ещё хотя бы существенная часть мира) не готовы получать з/п или другие платежи исключительно в крипте/NFT, хранить свои сбережения в них же, пока нет гарантий сохранности, ликвидности и стабильности, нет возможности расплатиться ими в любой момент в любом случае когда от вас ожидают платежа — это будет очень малопопулярным инструментом — в отличие от "железных" денег и других распостранённых средств расчёта, включая даже банальные бумажные банкноты.


Возможно потом, очень потом, в далеком сказочном будущем это и изменится — но явно не завтра, не послезавтра и даже не в ближайшие лет 10, а до тех пор это так и останется уделом кучки трейдеров, гиков и фанатов.

но владение реальными ценностями никак не организовать без государственного участия

Собственно, на этом можно и остановиться. Пока не будет вышеупомянутого участия, NFT представляет ценность только для тех кто в это верит, как, впрочем, и криптовалюты, причём ценность исключительно волатильную, имеющую свойство превращаться в тыкву в любое время суток, а не только в полночь.


Да и все разговоры про то что "можно всё реализовать" (технически) тоже не имеют смысла без этого самого участия — мы пока живём в реальном, а не виртуальном мире. По крайней мере большинство из нас.

Это в теории — если никто не атакует зоны на этих серверах. На практике, если кто-то начнёт DDoS, то упадут все сервера — со всеми вытекающими. При этом если это были бюджетные VPS/DS (с каналами до 1 Gb), даже с анонсированным "DDoS protection", это не поможет, более того, их могут просто отключить или как минимум вежливо попросить уйти куда-то в очень сжатые сроки.


А пока идёт атака — то все ваши зоны будут лежать, PowerDNS, даже в комплекте с dnsdist для митигации и кэша, банально не вытянет даже 100K qps на бюджетных серверах, и хорошо если траффик безлимитный (реально, а не "fair use") — а то получите нехилый счёт.


У меня уже было несколько таких случаев — клиенты чисто конкретно попадали, в итоге после нескольких итераций с апгрейдами серверов плюнули и ушли в Cloudflare, это оказался самый бюджетный вариант с реальной защитой от DDoS и без учёта траффика, без риска что ткнут носом в T&C и сошлются на "fair use".


Вообще же это увы большая проблема (DDoS), эффективно бороться с ними реально могут только несколько больших провайдеров, сделать "непробиваемую" свою сетку с NS стоит очень много бабла (это мощные очень многоядерные DS с сеткой от 10 Gbit, причём их нужно много и в разных DC), гораздо больше чем если взять готовый сервис, соответственно имеет смысл только если вы собираетесь это продавать как услугу большому числу клиентов, а не хостите с десяток корпоративных зон.


И ещё один плюс в пользу "китов" — сам факт того что NS находится у кого-то большого обычно отбивает охоту у большинства любителей DDoSить, ибо бесполезно. Профессионалы, конечно, могут попытаться, но это очень дорогая атака получается.

Дело не в образе Телеграма. Блокировки контента в Германии были с давних времён — будь то контент выложенный на чьих-то вебсайтах или высказывания в соцсетях. По роду деятельности мне приходилось иметь дело с запросами на блокировку контента и выдачу данных об авторе — во всех без исключениях случаях это были вполне легитимные запросы, потому что после взгляда на "контент" любой адекватный человек захотел бы придушить его авторов.


Просто контент который не нарушает закон и не призывает к его нарушению, не призывает к насилию и т.п. обычно не возбуждает прокуратуру — даже если кто-то жалуется но не может мотивировать, но при переходе определенных границ власти начинают действовать — и сейчас эти границы перешла публика которая использует телеграм.


Насчёт же "свободы слова" — вот представьте, вы живёте в Германии, получили паспорт, но всё равно вы — иностранец, и важе окружение об этом, конечно же, знает, но относится спокойно. Вдруг в вашем районе появлятся группа "агитаторов", которая начинает убеждать жителей что "понаехавшие" — зло, они отбирают рабочие места, не платят налоги, воруют etc, и призывают к "борьбе" с ними, и некоторые из ваших соседей начинают прислушиваться и "проникаться".


Теперь скажите — вы, как истинный борец за свободу слова, конечно же не против подобной деятельности, правда ведь? Пусть себе собираются и агитируют, имеют право — а вы, со своей стороны, будете свои агитмероприятия проводить, рассказывая о своей пушистости и о том как неправы первые — примерно так должно быть? И совершенно неважно ведь что на машине стали царапать обидные надписи, соседи стали уводить детей подальше от вас или под дверь кто-то дохлую рыбу подбросил.


Если же мы подставим вместо "иностранец" — "вакцинированный", а агитаторов сделаем антиваксерами (или наборот) — вы всё ещё "за" свободу слова, или всё-таки попробуете это прекратить, попросив власти "что-то сделать"?


Есть всё-таки разница между "призывать к нарушениям закона" и "высказывать своё мнение" — грань тонкая, но в адекватных странах (к которым пока относится Германия) это не проблема, в отличие от менее адекватных, где любое высказывание неугодного властям мнения пытаются натянуть на "террористическую деятельность".

Если бы формат конфигурации у всех приложений был един — да, это было бы просто. Увы, форматов очень много, и не все они легко читаемы или интуитивны, без чтения документации не разобраться — попробуйте со знанием "одного редактора" сконфигурировать (к примеру) exim и rspamd — всё равно придётся изучать документацию и того и другого, дополнительно к редактору.


Про другие весьма недружелюбные форматы конфигурации (xml и даже json) я уже молчу — несмотря что они текстовые и как бы должны быть читаемы, они всё равно малопонятны человеку далёкому от администрирования или разработки.


Даже в традиционных .ini файлах (key=value) у разных приложений разная терминология, одно и то же ключевое словом может иметь разные (и не совсем интуитивные) значения, а то и вовсе быть аббревиатурой которую с лёта не понять.


Поэтому UI для конфигурации был и останется самым простым — для большинства пользователей, ибо большинство — ни разу не айтишники.


И нет, я не призываю избавиться от "тонкой" настройки в файлах — просто они нужны для профессионалов или как минимум продвинутых, но явно не для всех.

Это сработает только если автомобили будут стоить как телефоны, т.е. когда основная масса покупателей сможет позволить покупку нового без ущерба для бюджета каждые пару-тройку лет, да ещё и не имея возможности продать старый хотя бы на запчасти (он же "под пресс").


Но сейчас ситуация такова что большинство не может себе позволить покупку автомобиля (даже с продажей старого) каждые два-три года, автомобили служат много лет (в среднем около 10 лет в ЕС/США и около 20 лет в СНГ), попытка сделать их неремонтируемыми приведёт к тому что производители накажут сами себя — продажи упадут очень существенно, плюс это хорошо ударит и по вторичному рынку (мало кто захочет покупать неремонтируемую "тёмную лошадку").

С дисками, особенно энтерпрайз-класса, этот номер не пройдёт (по крайней мере больше одного раза) — если во многих устройствах одновременно (или близко к этому) будет заканчиваться гелий, это быстро всплывёт, особенно если учесть что есть компании которые их сразу тележками закупают (типа Backblaze). В лучшем (для производителя) случае придётся признать "брак", и не факт что отвертятся кивая на "гарантийный период закончился".

Типа сила есть — ума не надо? Что ж, в принципе, вполне дарвинистично.


И действительно, зачем бегуну ядрёная физика? Он же ядра не толкает.

Штраф это предупредительная мера. Если корпорации не изменят политику, суммы будут увеличиваться (или штрафы участятся) и рано или поздно это уже будет трудно игнорировать. GDPR предусматривает штрафы до 4% от годового оборота, а это уже очень больно даже для Google и FB.


Разумеется, корпорации будут бороться — но рано или поздно их таки нагнут, пусть не сразу и возможно не с первого раза эффективно, но неизбежно.


А вообще это шаг в правильном направлении — если есть кнопка "разрешить всё", то логично обязать поставить рядом такую же "запретить всё", которая ничем (кроме текста) не отличается от первой.

На актуальных всё точно также — собственно, это и меня и сподвигло перейти на NVMe в своё время, это было небо и земля даже для чисто экспериментальных проектов с кучей VM (хотя изначально я тоже был скептически настроен).


Окрылённый полученным опытом я посоветовал давнему клиенту тоже попробовать (он периодически жаловался на производительность, несмотря на то что в системе были только SSD) — в итоге он остался доволен как слон и сказал что субъективно ощущения как после пересадки с HDD на (первые) SSD — хотя конечно это зависит от задач (у него сильно нагруженный i/o кластер с k8s).


Proxmox ZFS выбирают за бесплатные снапшоты

В чём их бесплатность по сравнению с LVM thin? Да и при любом раскладе это "бесплатно" только для хостера, для клиентов это боль если (к примеру) у них там нагруженные базы или ещё что-то чему вредит COW.


ZFS и так не быстрая, и лучшее ей применение это NAS & co, где данные редко модифицируются "по месту" (бэкапы и прочее), если её ставить на хостинг и там хорошая активность — это просто смерть производительности даже на NVMe, и это при выключенных компрессии и дедупликации, а с ними это вообще ужас-ужас — в начале всё ок но со временем за счёт фрагментации всё начинает тормозить просто ужасно, особенно если памяти на ARC не десятки гигабайт и процессор не очень многоядерный.


Также при тестах из ВМ есть риск, что чтение будет из ОЗУ хоста.

Риск есть только если хост принудительно включает кэш и игнорирует direct i/o — я очень сомневаюсь что Hetzner это делает, не говоря уже о том что это приводит к сильному "загрязнению" памяти хоста всяким мусором и в целом плохо сказывается на всех (любая VM может загнать в swap хост и сильно помешать соседям — объём кэша на процесс/пользователя не тюнится, разве что ядро патченное).


Но я делал тесты и по чтению, разумеется — результаты почти идентичны (разница в пару процентов).


Для полноты картину, вот результаты тестирования с /dev/ram0 (на той же VM):


# fio --filename=/dev/ram0 --size=1G --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=10 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Jobs: 6 (f=6): [m(6)][30.0%][r=1307MiB/s,w=1315MiB/s][r=335k,w=337k IOPS][eta 00m:07s]
Jobs: 6 (f=6): [m(6)][50.0%][r=1256MiB/s,w=1258MiB/s][r=321k,w=322k IOPS][eta 00m:05s]
Jobs: 6 (f=6): [m(6)][70.0%][r=1244MiB/s,w=1243MiB/s][r=319k,w=318k IOPS][eta 00m:03s]
Jobs: 6 (f=6): [m(6)][90.0%][r=1188MiB/s,w=1185MiB/s][r=304k,w=303k IOPS][eta 00m:01s]
Jobs: 6 (f=6): [m(6)][100.0%][r=1326MiB/s,w=1329MiB/s][r=339k,w=340k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=420764: Fri Dec 31 02:51:52 2021
  read: IOPS=323k, BW=1261MiB/s (1322MB/s)(12.3GiB/10001msec)

Так что очень маловероятно что хост кэширует что-то — даже с учётом оверхеда виртуализации это было в пусть в два-три раза медленней, но явно не на порядок.

Тесты ZFS могут не говорить о реальной призводительности если неизвестно сколько памяти получил ARC — ZFS очень агрессивен в кэшировании (direct i/o игнорирует), так что если памяти у вас достаточно (32GB или больше) вы меряете производительность самой файловой системы, а не накопителя. Поставьте ограничение на ARC чтобы файл в него точно не влезал, и добавьте --fsync=1 к fio (убедившись что в ZFS не стоит sync=disabled) — тогда тест будет более реалистичным.


С блоками по 4k ситуация очень плохая за счёт организации самого ZFS (дерево, контрольные суммы и вот это всё) — сделайте ramdisk и померяйте, результаты тоже будут не впечатляющими, хотя конечно лучше чем с диском (любым).


NVME выдаёт 220к 4к IOPS в сумме (r+w). При этом Samsung заявляет о 1М IOPS.Видимо не 4К IOPS.

Потому что они указывают данные не для микса, а отдельно для чтения и записи — на только чтении или записи вы вероятно можете получить почти близко к 1M iops при QD > 32 а то и 128, правда, в вакууме идеальных условиях — т.е. тестируете его в монопольном режиме, причём заточенным под максимум производительности тулом. Вообще странно было бы ожидать от производителя гарантии iops не зная где и как будет использоваться накопитель, может его вообще по USB подключат, поэтому они указывают возможности железа (NVMe + PCIe), а вытянет ли их ваш конкретный сетап — это уже вопрос.


Теперь вернёмся к NVMe на Hetzner. Я провел тот же тест с файлом в 20G, с блоками по 1M и 4k, всё длительностью 1 минута — думаю это уж точно в кэш не влезло (разве что в SLC на самом накопителе):


fio --filename=/fio.test --size=20G --direct=1 --rw=randrw --bs=1m --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10
Jobs: 6 (f=6): [m(6)][20.0%][r=2672MiB/s,w=2636MiB/s][r=2672,w=2636 IOPS][eta 00m:48s]
Jobs: 6 (f=6): [m(6)][38.3%][r=2862MiB/s,w=2910MiB/s][r=2862,w=2910 IOPS][eta 00m:37s]
Jobs: 6 (f=6): [m(6)][56.7%][r=2854MiB/s,w=2893MiB/s][r=2854,w=2893 IOPS][eta 00m:26s]
Jobs: 6 (f=6): [m(6)][75.0%][r=2758MiB/s,w=2820MiB/s][r=2757,w=2819 IOPS][eta 00m:15s]
Jobs: 6 (f=6): [m(6)][93.3%][r=2850MiB/s,w=2865MiB/s][r=2850,w=2865 IOPS][eta 00m:04s]
Jobs: 6 (f=6): [m(6)][100.0%][r=2745MiB/s,w=2703MiB/s][r=2744,w=2702 IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=415743: Wed Dec 29 22:20:30 2021
  read: IOPS=2791, BW=2792MiB/s (2927MB/s)(164GiB/60006msec)

Разумеется, если я снижаюсь до 4k, то получаем сильное проседание по bandwidth, но если учесть что это виртуалка и на одном хосте их много, то оверхед и общая нагрузка сильно портят картину:


# fio --filename=/fio.test --size=20G --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10
Jobs: 6 (f=6): [m(6)][20.0%][r=96.8MiB/s,w=97.9MiB/s][r=24.8k,w=25.1k IOPS][eta 00m:48s]
Jobs: 6 (f=6): [m(6)][38.3%][r=98.9MiB/s,w=99.9MiB/s][r=25.3k,w=25.6k IOPS][eta 00m:37s]
Jobs: 6 (f=6): [m(6)][56.7%][r=99.7MiB/s,w=99.7MiB/s][r=25.5k,w=25.5k IOPS][eta 00m:26s]
Jobs: 6 (f=6): [m(6)][75.0%][r=111MiB/s,w=111MiB/s][r=28.4k,w=28.3k IOPS][eta 00m:15s]
Jobs: 6 (f=6): [m(6)][93.3%][r=107MiB/s,w=106MiB/s][r=27.3k,w=27.2k IOPS][eta 00m:04s]
Jobs: 6 (f=6): [m(6)][100.0%][r=105MiB/s,w=105MiB/s][r=26.8k,w=26.8k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=415775: Wed Dec 29 22:29:51 2021
  read: IOPS=26.2k, BW=102MiB/s (107MB/s)(6134MiB/60002msec)

Очевидно что результаты, как вы выразились, "не впечатляющие", но если туда поставить обычные (не NVMe) SSD, они станут в несколько раз менее впечатляющими, а если учесть любовь некоторых хостеров строить хосты на ZFS, то всё совсем может оказаться печально (принудительный COW даже на блочных устройствах, компрессия и прочие радости — зато типа "супер надёжно").


Для сравнения — вот результат от OVH (VPS Comfort), где они тоже пишут про NVMe:


fio --filename=/fio.test --size=20G --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10
Jobs: 6 (f=6): [m(6)][18.3%][r=60.8MiB/s,w=61.6MiB/s][r=15.6k,w=15.8k IOPS][eta 00m:49s]
Jobs: 6 (f=6): [m(6)][36.1%][r=63.4MiB/s,w=62.5MiB/s][r=16.2k,w=16.0k IOPS][eta 00m:39s]
Jobs: 6 (f=6): [m(6)][52.5%][r=62.7MiB/s,w=62.5MiB/s][r=16.0k,w=16.0k IOPS][eta 00m:29s]
Jobs: 6 (f=6): [m(6)][68.9%][r=61.9MiB/s,w=62.5MiB/s][r=15.8k,w=16.0k IOPS][eta 00m:19s]
Jobs: 6 (f=6): [m(6)][85.2%][r=61.0MiB/s,w=62.5MiB/s][r=15.9k,w=16.0k IOPS][eta 00m:09s]
Jobs: 6 (f=6): [m(6)][100.0%][r=63.0MiB/s,w=62.5MiB/s][r=16.1k,w=16.0k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=3963560: Wed Dec 29 22:11:02 2021
  read: IOPS=15.0k, BW=62.4MiB/s (65.4MB/s)(3743MiB/60003msec)

Очень похоже что что они ограничивают iops до 16k (слишком ровные результаты), соответственно при блоках в 4k сильно проседает и bandwidth. То же самое для 1M:


fio --filename=/fio.test --size=20G --direct=1 --rw=randrw --bs=1m --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10
Jobs: 6 (f=6): [m(6)][19.7%][r=1048MiB/s,w=1055MiB/s][r=1047,w=1054 IOPS][eta 00m:49s]
Jobs: 6 (f=6): [m(6)][36.1%][r=979MiB/s,w=940MiB/s][r=979,w=940 IOPS][eta 00m:39s]
Jobs: 6 (f=6): [m(6)][52.5%][r=1052MiB/s,w=961MiB/s][r=1051,w=961 IOPS][eta 00m:29s]
Jobs: 6 (f=6): [m(6)][68.9%][r=1057MiB/s,w=961MiB/s][r=1056,w=961 IOPS][eta 00m:19s]
Jobs: 6 (f=6): [m(6)][85.2%][r=1059MiB/s,w=1006MiB/s][r=1058,w=1005 IOPS][eta 00m:09s]
Jobs: 6 (f=2): [f(1),m(1),f(3),m(1)][96.8%][r=973MiB/s,w=1050MiB/s][r=973,w=1049 IOPS][eta 00m:02s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=3963793: Wed Dec 29 22:13:57 2021
  read: IOPS=1000, BW=1000MiB/s (1049MB/s)(58.7GiB/60036msec)

Тут уже видно что идёт ограничение по bandwitdh (слишком уж "ровно" оно на протяжении всего теста) — и это в два-три раза менее впечатляюще чем у Hetzner.


Собственно, я и тесты-то сделал не чтобы показать что в виртуалке можно получить максимум от NVMe — за счёт виртуализации это практически невозможно (очень большой оверхед по дороге к накопителю, особенно если виртуалок много), но использование NVMe вполне оправданно — потому что без них всё будет намного хуже, как минимум в разы, а на загруженных по i/o хостах может даже на один-два порядка — по той простой причине что условные 500K iops на NVMe дадут по 50k iops на десяти виртуалках, в то время как не менее реалистичные 100k на "обычных" SSD дадут соответственно по 10k, да и скорость поделится соответственно.


В качестве иллюстрации оверхеда (домашний сервер, PNY CS3030 1T как накопитель, KVM в proxmox), на этот раз на чтении:


fio --filename=/dev/sda --size=20G --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10 --readonly
Jobs: 6 (f=6): [r(6)][20.0%][r=592MiB/s,w=0KiB/s][r=152k,w=0 IOPS][eta 00m:48s]
Jobs: 6 (f=6): [r(6)][38.3%][r=591MiB/s,w=0KiB/s][r=151k,w=0 IOPS][eta 00m:37s]
Jobs: 6 (f=6): [r(6)][56.7%][r=588MiB/s,w=0KiB/s][r=150k,w=0 IOPS][eta 00m:26s]
Jobs: 6 (f=6): [r(6)][75.0%][r=596MiB/s,w=0KiB/s][r=152k,w=0 IOPS][eta 00m:15s]
Jobs: 6 (f=6): [r(6)][93.3%][r=595MiB/s,w=0KiB/s][r=152k,w=0 IOPS][eta 00m:04s]
Jobs: 6 (f=6): [r(6)][100.0%][r=596MiB/s,w=0KiB/s][r=152k,w=0 IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=15829: Wed Dec 29 22:44:38 2021
   read: IOPS=150k, BW=586MiB/s (614MB/s)(34.3GiB/60001msec)

Это гораздо более впечатляюще чем у Hetzner, но — это сервер на котором нет нагрузки, он фактически простаивает, да и процессор на нём в пару раз пошустрее (а он важен для пути накопитель=>lvm=>vm и обратно). Теперь тот же fio на хосте через LVM который подцеплен к виртуалке:


fio --filename=/dev/mapper/npve-vm--222--disk--0 --size=20G --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=8 --iodepth_batch_submit=8 --runtime=60 --numjobs=6 --time_based --group_reporting --name=iops-test-job --eta-newline=10 --readonly
Jobs: 6 (f=6): [r(6)][19.7%][r=893MiB/s][r=229k IOPS][eta 00m:49s]
Jobs: 6 (f=6): [r(6)][36.1%][r=886MiB/s][r=227k IOPS][eta 00m:39s]
Jobs: 6 (f=6): [r(6)][54.1%][r=892MiB/s][r=228k IOPS][eta 00m:28s]
Jobs: 6 (f=6): [r(6)][72.1%][r=889MiB/s][r=228k IOPS][eta 00m:17s]
Jobs: 6 (f=6): [r(6)][90.2%][r=893MiB/s][r=229k IOPS][eta 00m:06s]
Jobs: 6 (f=6): [r(6)][100.0%][r=900MiB/s][r=231k IOPS][eta 00m:00s]
iops-test-job: (groupid=0, jobs=6): err= 0: pid=2993571: Wed Dec 29 22:46:47 2021
  read: IOPS=229k, BW=895MiB/s (938MB/s)(52.4GiB/60001msec)

Как видите, просто за счёт того что это виртуалка, мы уже теряем около 40%(!) — и это она одна, другой нагрузки в системе нет и даже отключены все митигации как на хосте так и на виртуалке (mitigations=off) — разумеется если виртуалок с десяток или два, они что-то делают, а поскольку это хостер то и митигации по полной программе — мы просядем ещё больше, но это проседание будет намного менее заметным чем в случае SATA/SAS.


Так что если кто-то говорит что "VPS получит скорость NVMe" — он скорее всего таки врёт, но если этот кто-то говорит "на наших хостах стоят NVMe и это сильно повышает производительность [чем если бы стояли SATA/SAS]" — то это всё же скорее всего правда — об этом говорит и опыт с хостерами, и собственный (правда, не на Hyper-V).


Про RAID для NVMe тоже смешанные чувства — конечно, "один раз не считается", но я для эксперимента делал softRAID1 (mdadm) на двух потребительских NVMe (PNY CS3030 1T, посаженных на один PCIe x16 слот в X470D4U + Ryzen 3600X), разницы в скорости практически не было (при записи), рандомное чтение было быстрее но не помню на сколько — и это совсем не серверное железо. Увы, это было относительно давно, сборки уже нет, а результаты я не сохранял — но успех этого эксперимента позволяет мне верить что заявленное Hetzner наличие RAID 10 на их cloud серверах очень реалистично, вопреки выводам в статье про невозможность (или нецелесообразность) RAID на NVMe.

Information

Rating
Does not participate
Location
Nordrhein-Westfalen, Германия
Registered
Activity