Forwarded from Daily Coding 🔥
🛠 Atlas — это универсальный инструмент для управления и миграции схем баз данных с использованием современных принципов DevOps.
🌍 Сайт
Daily Coding #инструменты #DevOps & Max
🌍 Сайт
Daily Coding #инструменты #DevOps & Max
Forwarded from Node.JS [ru] | Серверный JavaScript
Сатурация libuv thread pool в Node.js: как crypto, fs и dns.lookup ломают latency в production
В Node.js
Где возникает проблема
По умолчанию
Первые 4
Production-сценарий
Логин считает password hash, HTTP-клиент часто резолвит hostname, а hot path читает сертификат или metadata с диска. CPU может быть не 100%, event loop - "здоровым", но p99 растет из-за очереди к worker'ам.
DNS-нюанс
Что делать
* выносить тяжелый crypto в
* не читать файлы на hot path - грузить и кэшировать заранее;
* включать keep-alive, pooling и DNS cache;
* менять
Больше thread'ов - не silver bullet: CPU-bound задачи могут ухудшить p99 из-за context switching.
Вывод:
libuv thread pool - маленький общий ресурс процесса, поэтому latency-sensitive I/O нельзя смешивать с тяжелым crypto и частым
В Node.js
async не значит "без очередей": часть операций конкурирует за общий libuv thread pool. Частая ошибка в production - смотреть только на event loop lag и не видеть очередь внутри пула.Где возникает проблема
По умолчанию
UV_THREADPOOL_SIZE=4 на процесс. Туда попадают crypto.pbkdf2, scrypt, часть randomBytes, многие fs.*, dns.lookup, zlib.for (let i = 0; i < 8; i++)
crypto.pbkdf2(p, s, 500_000, 64, 'sha512', cb);
await fs.readFile('./config.json');
await dns.lookup('api.internal');
Первые 4
pbkdf2 занимают весь пул, остальные операции ждут. Маленький config-файл или DNS lookup внезапно дают сотни миллисекунд.Production-сценарий
Логин считает password hash, HTTP-клиент часто резолвит hostname, а hot path читает сертификат или metadata с диска. CPU может быть не 100%, event loop - "здоровым", но p99 растет из-за очереди к worker'ам.
DNS-нюанс
dns.lookup использует системный resolver через getaddrinfo и libuv pool. dns.resolve4/6/Mx используют c-ares и не конкурируют с fs/crypto так же. Предупреждение: массовый dns.lookup легко принять за "медленную сеть".Что делать
* выносить тяжелый crypto в
worker_threads, отдельный сервис, процессы или queue;* не читать файлы на hot path - грузить и кэшировать заранее;
* включать keep-alive, pooling и DNS cache;
* менять
UV_THREADPOOL_SIZE только после load test:UV_THREADPOOL_SIZE=32 node server.js
Больше thread'ов - не silver bullet: CPU-bound задачи могут ухудшить p99 из-за context switching.
Вывод:
libuv thread pool - маленький общий ресурс процесса, поэтому latency-sensitive I/O нельзя смешивать с тяжелым crypto и частым
dns.lookup без изоляции и измерений.Forwarded from ai.dot(ufna, dev)
Еее, очередная порция нужных фортнайту костылей и не нужных остальным!!
Но подача ппц красива. Шестой анрил в следующей году, и собственно основное — там все про Verse (что логично и давно нужно), но толку то?
Пишите в комменты кому что зашло больше всего по итогу!
https://youtu.be/9ikOoOzAhPE
Но подача ппц красива. Шестой анрил в следующей году, и собственно основное — там все про Verse (что логично и давно нужно), но толку то?
Пишите в комменты кому что зашло больше всего по итогу!
https://youtu.be/9ikOoOzAhPE
YouTube
State of Unreal 2026 Official 4K Livestream | Unreal Fest Chicago
Watch the State of Unreal, live from Unreal Fest Chicago! Tune in for news about Epic’s developer tools and services, highlights from across the community, and a look at what's ahead.
This year is about tools and workflows developers can actually use to…
This year is about tools and workflows developers can actually use to…
Forwarded from Daily Coding 🔥
🛠 Minify - расширение для минимизации вашего кода. Оно предлагает множество настроек настройки и возможность автоматического сокращения при сохранении и экспорте в файл .min. Minify работает с JavaScript, CSS и HTML с помощью uglify-js, clean-css и html-minifier соответственно.
🌍 Сайт
Daily Coding #инструменты #web & Max
🌍 Сайт
Daily Coding #инструменты #web & Max
Forwarded from Dezzigners
This media is not supported in your browser
VIEW IN TELEGRAM
🧰 Remix Icons for Figma — набор открытых нейтральных иконок, созданных для дизайнеров и разработчиков
Dezzigners
Dezzigners
Forwarded from PSD | Дизайн-пространство
Дизайн упаковки и айдентика оливковых масел La Finca Ramosa.
Дизайн: Creative Partners
#упаковка #брендинг
Дизайн: Creative Partners
#упаковка #брендинг