Yet another senior pomidor (by @gmelikov) – Telegram
Yet another senior pomidor (by @gmelikov)
175 subscribers
44 photos
6 videos
46 links
Околоайтишные страсти с уклоном в инфровую разработку и sci-fi.
Ведёт @gmelikov
Download Telegram
Forwarded from Nastasya
Привет! VK Tech приглашает на DarkSideoftheCloud, специальный выпуск InfraDev Meetup про «теневую» сетевую сторону облачных сервисов.

Поговорим про то, где сети лежат в архитектуре BareMetal as a Service, какие технологии выбрать для виртуальной частной сети и как справиться с непростой задачей масштабирования межсетевых экранов.

Спикеры:
🕸Кирилл Фролов, эксперт в команде разработки платформы, VK Cloud, VK Tech.
🕸Влад Одинцов, Tech Lead и Product Owner сетевых сервисов, K2 Cloud.
🕸Юрий Дышлевой, инженер, Positive Technologies.
Подробнее о докладах читайте на странице мероприятия.

Когда: 16 июля, с 18:00 до 23:59
Где: Москва, Ленинградский 39, БЦ Skylight, офис VK

Приходите на встречу или участвуйте онлайн.
Зарегистрироваться.
🔥2👌1🤝1
👍5🌭4🌚1🤝1🦄1
Самый классный вариант что-то мерить - через физику.
Производительность одного потока можно свести к измерению задержек!

Собрал для вас пирамидку средних задержек с флёром облаков:
L1 cache                                    0.5ns
Branch mispredict 5 ns
L2 cache 7 ns
Mutex lock/unlock 25 ns
RAM 100 ns
Send 1K over 1 Gbps net 10,000 ns
Read 4K randomly from local fast NVME 20,000 ns
Read 4K randomly from local NVME (VM) 60,000 ns
Read 4K randomly from local SSD 150,000 ns
Read 1 MB sequentially from RAM 250,000 ns
Read 4K randomly from network NVME 500,000 ns
Round trip within same datacenter 500,000 ns
Read 1 MB sequentially from SSD 1,000,000 ns
HDD seek 10,000,000 ns
S3 response for 4k object up to 100,000,000 ns
Send packet CA->Netherlands->CA 150,000,000 ns

1 second 1,000,000,000 ns


Против физики не попрёшь!
#занимательное
🔥6🤝3🦄3
Интересный кейс подъехал: есть полезный сисколл copy_file_range, и если файловая система позволила принять через него запрос на копирование байтов больше, чем помещается в 32-битное число, то всё остальное будет забито нулями.

Если бы я хотел написать кликбейтный заголовок, то он бы выглядел так: "ZFS опять бьёт данные! Ну что за ненадёжная ФС!"

Вот только это баг в glibc, а ZFS (чуть ли не) единственная позволяет разом скопировать через данный сисколл сильно больше. К слову, фикс уже летит.

Будьте дети аккуратны с жирными операциями больше 32 бит.
6👻3🍌1🍓1👀1
Media is too big
VIEW IN TELEGRAM
Señoras y señores, переворачиваем календарь!
🔥8🗿2🍾1
В эту субботу 13 сентября будет бесплатная онлайн-конференция Highload++ Genesis о фундаментальных вещах для нашей сферы: базы, не-базы, сети, ml, облака, контейнеры, нагрузки.

На ней буду "великолепно капитанить" про облака. Регистрируйтесь, услышимся!

#conference
🔥5👀3👌1👨‍💻1
Перестрелка :)

А записи докладов уже публично доступны тут https://conf.ontico.ru/online/ghl2025 , буду использовать как хорошие вводные для новых сотрудников.
6👀3🔥2
Объявлена неделя многоядерности Multi-kernels, не только лишь один один патч, но целых два были опубликованы на LKML.

Идея интересна - давайте на отдельных ядрах процессора запускать честные копии (может даже разных версий) ядер ОС, каждому отсыпать индивидуально куски памяти, и, в идеальной картине мира, также нарезать и другое железо (сети, диски, GPU, словом - всё что висит на PCIe шине).

Всё это подаётся в основном как замена виртуализации, ожидая минимизацию накладных расходов. НО - кто же будет отвечать за общие компоненты? Да тот же сторадж, локальные файловые системы требуют монопольный доступ. В сетях вроде есть sr-iov, но с ним тоже теряется определённая гибкость. Вообще вырисовывается интересный нюанс - должно быть более главное главное ядро, которое за такие вещи должно отвечать. Тут лично у меня вопрос - а чем общение между ядрами будут отличаться по эффективности от virtio + vhost(-user) у VMок, которые уже по максимуму стараются передавать данные без копирования?

В LKML оставили ещё один очень интересный комментарий на эту тему: Pasha Tatashin когда то уже экспериментировал с этим подходом (уже третий вариант в рамках этого поста 😄 ), и отмечает проблемы:
While this approach was easy to get to the experimental PoC, it has
some fundamental problems that I am not sure can be solved in the long
run, such as handling global machine states like interrupts. I think
the Orphaned VM approach (i.e., keeping VCPUs running through the Live
Update procedure) is more reliable and likely to succeed for
zero-downtime kernel updates.


В итоге выглядит, что такой подход весьма интересен для масштабирования в рамках одного хоста, а вот удобство и изоляцию VMок будет весьма затруднительно догнать.
👍4👀31👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
Мне тут стало скучно, и я решил купить самый дешёвый 4ТБ nvme с озона по цене HDD. Наверное, вы уже догадываетесь про что будет пост :)

Начиналось всё не плохо, диск до сих пор виден в системе, отвечает уверенно (смарт в конце поста). Нашёл утилиту f3 , быстрый f3probe даже сказал что всё ок. f3write, оказалось, хочет писать файлы поверх ФС (он генерит сиквенс файлами по 1ГБ, которые потом должен провалидировать f3read). Сначала я подумал отформатировать диск с ext4/xfs, всё равно разово, а потом решил не изменять себе и бахнул ZFS.

За ночь (часов 10) nvme смог принять всего 160ГБ данных (скорее всего итоговый объём около 240ГБ, т.к. я успел один раз перезапустить запись после 60+ГБ), первые 50ГБ влетели на скорости 1ГиБ/сек, а вот на утро я увидел скорость записи в 2МиБ/сек и моргающий красный светодиод на самом nvme... В целом судьба диска к этому моменту стала понятна, я пошёл оформлять возврат.

Параллельно запустил zpool scrub, и тут меня ZFS в очередной раз обрадовал:
root@ubuntu:~# zpool status
pool: testpool
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-8A
scan: scrub in progress since Fri Sep 26 08:08:22 2025
163G / 163G scanned, 145G / 163G issued at 16.0M/s
0B repaired, 89.32% done, 00:18:32 to go
config:

NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
nvme0n1 ONLINE 0 0 54.6K

errors: 27754 data errors, use '-v' for a list


Родимые чексуммы заорали о проблемах, и это скраб ещё не кончился!

Диск представляется как Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5765DL NVMe SSD Controller (DRAM-less) (rev 01).
Интересные моменты из smartctl для интересующихся уже после тестов, диск считает себя живым (но верить ему, конечно, не стоит):
=== START OF INFORMATION SECTION ===
Model Number: SSD 4TB
Serial Number: 000166
Firmware Version: VC2S038D
PCI Vendor/Subsystem ID: 0x10ec
IEEE OUI Identifier: 0x00e04c
Controller ID: 1
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 4,000,787,030,016 [4.00 TB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 00e04c 11be335053
...
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 8.00W - - 0 0 0 0 0 0
1 + 4.00W - - 1 1 1 1 0 0
2 + 3.00W - - 2 2 2 2 0 0
3 - 0.0300W - - 3 3 3 3 5000 10000
4 - 0.0050W - - 4 4 4 4 54000 45000

Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 40 Celsius
Available Spare: 100%
Available Spare Threshold: 32%
Percentage Used: 0%
Data Units Read: 70,047 [35.8 GB]
Data Units Written: 695,379 [356 GB]
Host Read Commands: 283,235
Host Write Commands: 4,106,990
Controller Busy Time: 0
Power Cycles: 3
Power On Hours: 11
Unsafe Shutdowns: 2
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0

Error Information (NVMe Log 0x01, 8 of 8 entries)
No Errors Logged

Read Self-test Log failed: Invalid Field in Command (0x002)


#баловство #storage
🔥9🤡3😁2🌚2🙈1
ЦОДы цодами, а в комментах к посту правильно зарубились - сгореть/получить метеорит в лоб может любой ЦОД, что "офисный", что промышленный. Нужны минимум бекапы/async кластеры растянутые меж-ЦОД, но вкуснее смотрятся геораспределённые хранилища (БД/S3).

В общем, очередной срач про "а вы уже делаете бекапы?" вам в ленту.
👍2🌚1👀1
Forwarded from Логово асоциальной твари (Aleksey Uchakin)
Про пожар в южнокорейском NIRS (Национальной службе информационных ресурсов) думаю все уже прочитали.
Классика: литий-ионные батареи, пожар, бэкапы в соседней серверной, "что могло пойти не так".

Но самое забавное в другом. Не далее как на прошлой неделе на #dcsummit уважаемый "независимый эксперт" ругал коммерческие ЦОДы за дороговизну. Мол, есть у него одна знакомая компания, которая у себя в офисе "поставила в серверной два бытовых кондиционера, четыре стойки и ИБП - и таких заказчиков будет больше, потому что кое кто зажрался" (с).

Как вы думаете, где будет лучше организована система пожаротушения - в серверной в БЦ или в хорошем коммерческом ЦОДе? А пожарную экспертизу этот БЦ когда последний раз проходил? А что там с огнестойкостью материалов стен и перекрытий?
ЦОДы, конечно, тоже разные бывают, но с пожбезом там всё-таки дела обычно получше, да и гермозоны не зря придумали.

Храните деньги в сберегательной кассе (если, конечно же, они у вас есть), серверы с важными данными - в ЦОДе, а бэкапы - отдельно от прода!

@snakeslair #thereisnoclouds
👌3👨‍💻1🤝1
Увидел в чате уважаемого человека пост про OpenZL, и не смог пройти мимо, т.к. понеслось - уже в ZFS начали его просить :)

Да, это ещё один компрессор, но с нюансом. Yann Collet там тоже отметился, так что давайте и сравним новинку с его произведениями искусства:
- LZ4 - максимально быстро, всё в угоду скорости, даже несжимаемое предпочитает по эвристике пропустить и не пытаться пожать (итого скорость ~memcpy на несжимаемом)*
- ZSTD - очень гибкий, быстрее gzip, эффективнее gzip, на малых режимах сжатия наследует многое от LZ4*. Одна из фишек - сжатие по словарю - т.е. если ваши данные ну очень типовые - составляете словарь наиболее частых вхождений и получаете легко коэффициент х20. Нюанс - словарь надо таскать с собой, что сильно уменьшает удобство.
- новинка OpenZL - читерит и требует знания про ваши структуры данных, но зато может дать огромный выигрыш. Проще всего объяснить на их же примере и вспомнить почему time-series DB умеют ну очень эффективно хранить последовательности: если вы храните упорядоченные числа, то эффективнее всего хранить их... дельту! Ключевое отличие от словарей - что для разжатия вам не нужны дополнительные артефакты.

Новое слово для сжатия известных структур/метаданных?

* на самом деле, грань между LZ4 и ZSTD сильно размылась, у каждого уже есть разные режимы, позволяющие сильно превратить одно в другое
3🤩3👀2🤔1🍌1
Yet another senior pomidor (by @gmelikov)
Увидел в чате уважаемого человека пост про OpenZL, и не смог пройти мимо, т.к. понеслось - уже в ZFS начали его просить :) Да, это ещё один компрессор, но с нюансом. Yann Collet там тоже отметился, так что давайте и сравним новинку с его произведениями искусства:…
Уважаемый человек побудил меня потратить всё время в сапсане на чтение paper'а об openZL, и я прямо насладился!

Идея - огонь:
- SDDL (язык для описания структуры данных) для парсинга на первом этапе, потом transform (промежуточный кодек), потом графы и итоговые кодеки в них.
- Кодеком может являться любая функция которая что-то сделает с данными (тот же zstd). Элемент графа - тоже кодек, но умеющий построить связь с другими кодеками передающий данные как есть.
- Работаем не с байтами, а со структурированными данными. При чём in-out стримов много! Полезный бонус - данные перед сжатием теперь можно не сериализовывать, а как есть отдать на соответствующий кодек для сжатия.
- Упор на практичность, универсальный декодер (главное чтоб имел нужные кодеки). И это гипер важно - основная проблема сделать новый алгоритм компрессии - в распространении его декомпрессора. OpenZL позволит делать максимально эффективные кодеки, используя один и тот же декодер!

Для меня возможность эффективнее сжать в данном случае выглядит скорее как бонус, а не основная фишка openzl. По сути это новый фреймворк для сжатия, киллер-фича - универсальный декодер без словарей.

Для простоты разберём пример:
csv "ФИО,рост,вес"
- парсим и выделяем каждый столбец отдельно
- теперь, например, столбец "рост" можно преобразовать из ascii/utf в int, может даже - отсортировать, если отсортировали - писать дельту а не значение, и всё это подать в специализированный кодек field_lz
- поле "ФИО" проще воспринимать как текст, тут можно использовать базовый zstd (для примера)
- итог - граф операций над данными, для декомпрессии его надо просто проиграть в обратную сторону (т.е. в итоговом артефакте есть информация о порядке декомпрессии известными декомпрессору кодеками)


А как вы упарываетесь в пути?
👾21👨‍💻1👀1
Кстати, тут python 3.14 релизнулся, все носятся с перформансом и тредами. Это конечно классно, но в среднем для вас разница будет на уровне погрешности.

Лично я очень ждал (и наконец - дождался):
- zstd из коробки. Король компрессоров in da house
- uuidv7 из коробки. Теперь индексы по uuid будут последовательны и эффективны, особенно это оценит mysql и подобные с gap lock на primary key
🤓4👻3🗿2👨‍💻1🤪1
Коллеги проводят исследование с целью понять, что реально происходит внутри ИТ-команд и какие закономерности можно в этом увидеть.

Уже нащупаны интересные корреляции:
– между скоростью пайплайнов и качеством code review,
– между алертингом и стабильностью релизов,
– между ролями в команде и удовлетворённостью релизным процессом.

Но нужно больше данных, чтобы отделить закономерности от шума.

Пройти анкету можно за 10 минут. Её же можно использовать как мини-чек-лист для самооценки зрелости инженерной культуры.

Принять участие: https://forms.gle/NszR7VDuXL9sBbVAA

Результаты обязательно расскажу, коллеги поделятся.


Чем быстрее CI/CD - чем больше рисков "тестирования на проде"?
2🤔1👌1🤝1
В этот раз делать отдельный обзор на аварию даже как-то неудобно, DNS всё же :)

Вообще как корректно DNSу ответить именно в случае проблем - это больно, т.к. краткий ответ - ответить кровь из носу, но надо, иначе у всех кеш о записи протухнет и умрёт. Вот и получается, что для самых критичных вещей будь добр имей статичные записи с хорошим таким TTL.

А будущее всё также за cloud-agnostic (да-да, on-prem это тоже облако нынче) и #NoOps .
👨‍💻2👀2👍1👌1
#машины_aws

Пожалуй, лучший инцидент, что я когда либо видел.

Если вкратце:
1. Управление DNS записями для DynamoDB отвалилось, в итоге:
2. Эндпоинты DynamoDB (в том числе для внутреннего пользования) отвалились, в итоге:
3. Storage backend, которым выступала DynamoDB, одного из компонентов control plane EC2 отвалился, в итоге:
4. Отвалился NLB, который не мог следить за событиями EC2.

Очень радует, что AWS решил минимальными усилиями решить конкретную проблему, а не сделать отдельный внутренний Kinesis как тогда с инцидентом CloudWatch и Cognito.


Да и не пользуйтесь us-east-1, сколько еще повторять. Новые фичи раньше всех того не стоят.
🌚2🤝2💊1
В сети можно найти интересные посты про "переволновавшиеся" LLMки, как они могут проигнорировать инструкции об безысходности и всё же дропнуть вам базу на проде.

По случаю вспомнил замечательный рассказ Станислава Лема - Ананке. 1971 год, короткий рассказ, Марс, научная фантастика, как нынче модно это называть - про машинное обучение.

Первый раз я прочитал это произведение лет 5 назад, и подумал, что этот sci-fi уже про "несвершившееся будущее" и сильно так устарел (хотя даже тогда он меня покорил той самой богиней Ананке). Но в этом году, да ещё с такими историями про LLM, оказывается что мы всё таки дожили до этого будущего, про которое когда-то подумал Лем :) Вот такие они - грёзы по несбывшемуся будущему.

#books

А ещё мне очень понравилась суть богини Ананке из древнегреческой мифологии - "неизбежность, судьба, нужда, необходимость". Всё как в жизни - если какой-то сценарий вероятен, то на масштабах он неизбежен. Например - ваш сервер когда-то гарантированно откажет самым неожиданным образом.
2🎃2🤔1😱1🍌1💅1
Forwarded from samdark blog ☕️ (Alexander Makarov) (Alexander Makarov)
Инженерная зрелость. Исследование практик и триггеров

Итак, исследование завершилось. Вот что вышло.

https://habr.com/ru/articles/963202/
🤔2👌2🌚2👍1👀1