В августе 2023 года под руководством группы TAG Observability в экосистеме CNCF была выпущена версия 1.0 документа по наблюдаемости (observability). CNCF — флагман развития и продвижения облачных технологий. Организация объединяет в себе множество компаний, разработчиков и специалистов с огромным опытом и экспертизой, которые упаковали в этот документ. Наш материал является его переводом.
Linux ”perf” ускорили в 60 раз
Для записи логов нужно или обернуть программу в вызов
perf record
, или инструмент просто подключается к текущему процессу. В любом случае затем мы прогоняем записанные данные через perf script
, а несколько перловых скриптов генерируют «пламеграфы» из этих данных.Проблема только в том, что
perf record
очень медленно работает под Debian по юридическим причинам. Всем разработчикам Linux это известно, но они ничего не могут сделать. Поэтому независимый программист Тони Гарнок-Джонс (Tony Garnock-Jones) выпустил патч, который ускоряет perf
примерно в 60 раз.Несколько советов по эмпирическому анализу алгоритмов
Вступление
В ноябре прошлого года появилась книга Magnus Lie Hetland под названием «Python Algorithms: Mastering Basic Algorithms in the Python Language». Автор много лет занимается программированием и сейчас читает курс теории алгоритмов в одном из норвежских университетов. В своей книге он довольно простыми словами объясняет методы построения и анализа алгоритмов, а также приводит множество примеров, ориентированных на программистов на Python. Автор сосредотачивает свое внимание на практическом подходе к построению и оптимизации решений различных алгоритмических задач. В одном из обзоров говорится, что эту книгу можно сравнить с классическим трудом Кормена.
Мы с tanenn понемногу переводим эту книгу, и я предлагаю вашему вниманию перевод части первой главы — «Empirical Evaluation of Algorithms».
Много сайтов на одной странице
Здравствуй Хабр!
Хотелось бы услышать как он поведет себя в ваших руках, каково ваше мнение, что понравилось, что нет? Что бы вы сделали иначе, а чем можно гордиться?
Интермеццо
Сколько в Интернете сервисов сокращения адресов, подлинно не известно никому. Точно больше тысячи. Каждая серьезная компания имеет свой собственный короткий домен. Твиттер породил целую индустрию. Отличаются они лишь дополнительным функционалом. Однако все они берут один URL и делают из него другой URL.
Предыстория
Мы решили сделать нечто новое, казалось бы банально очевидное. А почему бы не брать много ссылок, положить все в табы, и пересылать это как одну страницу?
Оптимизация для начинающих, или о пользе профилирования
Что из этого получилось приглашаю начинающих программистов почитать, а опытных обсудить.
PostgreSQL Query Profiler: как сопоставить план и запрос
… в красиво оформленный запрос с контекстными подсказками по соответствующим узлам плана:
В этой расшифровке второй части своего доклада на PGConf.Russia 2020 я расскажу, как нам удалось это сделать.
С транскриптом первой части, посвященной типовым проблемам производительности запросов и их решениям, можно ознакомиться в статье «Рецепты для хворающих SQL-запросов».
Верить ли глазам
На что обращать внимание при оценке невербальных проявлений лжи
В прошлой статье мы разобрали, какие когнитивные искажения мешают определить обман. Как и обещал, хочу развить тему безынструментальной детекции лжи. Этот метод можно разделить на 2 категории:
1) оценка невербальных реакций;
2) оценка речи (и текстов).
Максимальную эффективность можно обеспечить только сочетанием двух моделей. Сегодня хочу обсудить первую категорию. Обсудим, какие правдивые выводы можно сделать из «чтения» по лицу и мимике, а что – всего лишь стереотипы. И бонус для дочитавших текст – несколько тренажеров, чтобы стать почти как Пол Экман в деле распознания эмоций.
Пять стадий принятия неизбежного, или Как мы разрабатывали программу для автоматизированного профайлинга
Для решения этой задачи вендоры как правило идут по пути UEBA (или UBA). Но мы пошли своим и начали создавать автоматизированный профайлинг.
Под катом – история того, какой путь мы проделали, чтобы продукт состоялся.
Все оттенки инсайдерства
Рассмотрим их на осеннем Road Show
Осень для нас в «СёрчИнформ» – это роад. Road Show SearchInform. Это наше старейшее мероприятие и фактически наша визитная карточка. Вот и в этом году спикеры уже начищают ботинки, заказчики подбирают самые иллюстративные кейсы, ивентщики выбирают из меню закуски для кофе-брейков.
Устранение утечек памяти с помощью профилирования
Если система работает длительное время, объём свободной памяти может уменьшаться, что может приводить к отказу некоторых сервисов. Это типичная проблема утечки памяти, которую обычно сложно спрогнозировать и выявить. Удобными инструментами для решения подобных проблем являются профайлеры кучи. Они отслеживают распределение памяти и помогают разобраться, что находится в куче программы, а также найти утечки памяти.
В этой статье мы расскажем об использовании профайлеров кучи, а также объясним, как спроектированы и реализованы популярные профайлеры кучи, например, профайлер кучи Go, gperftools, jemalloc и Bytehound.
Профайлер Бедного Человека: первое знакомство и (приятные) последствия
Если вам приходилось оптимизировать работу программ, то вы могли слышать о Профайлере Бедного Человека. Этой идее даже посвящён целый сайт. ПБЧ собирает статистику времени выполнения отдельных функций программы, «подглядывая» в процесс её исполнения с помощью дебаггера. Концепт ПБЧ хорошо прижился у нас в движке баннерной крутилки — не буду в 100 500-й раз напоминать, что у Яндекса всё высоконагруженное, ресурсоёмкое и нуждающееся в профилировании. Статья будет полезна тем, кто пилит инфраструктуру, адаптирует какой-нибудь общеизвестный профайлер под себя или просто хочет больше знать про свои программы. Как мы пришли к необходимости в ПБЧ и что именно сделали? Сейчас постараюсь рассказать, местами буду закапывать глубоко в технологии (если переусердствую, пишите в комментариях). А начну со стандартного инструмента статистического профилирования в Linux — perf.
Xdebug 2.1.0 beta1
Спустя полгода с момента последнего релиза вышла новая бета-версия популярного продукта для отладки и профилирования Xdebug.
Так как эта новость почему-то обошла обошла хабр, я решил заполнить этот пробел.
Профайлинг Twisted-приложений
Запускаем наше приложение с включенным профайлингом:
twistd -n --savestats --profile=myprog.hotshot myprog
Подаем нагрузку, профайл собирается. Теперь с помощью утилиты
hotshot2cg
из поставки KCachegrind превращаем hotshot-профайл в calltree-профайл, который уже умеет KCachegrind «кушать». hotshot2cg myprog.hotshot > myprog.calltree
Запускаем KCachegrind, открываем в нем полученный профайл:
kcachegrind myprog.calltree
Pinba — мониторим php в реальном времени
Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.
И это действительно так. Она позволит вам в реальном времени получать статистику по работающему приложению, при этом не замедляя само приложение.
Что делать со статистикой — это уже ваше дело, например, мы выводим ее в заббикс и используем как для мониторинга стабильности (нет ошибок, мало число длинных запросов), так и для аналитики.
Удивительно, что про это действительно замечательное изобретение не было еще ни одной статьи на хабре.
Модуль профайлинга «ProfilerToolbar»
Имея достаточно свободного времени и желание сделать удобный инструмент для разработки, я решил написать свой велосипед с блэкджеком и плюшками. В итоге получилась такая штуковина:
Полезные ссылки для PHP разработчика с MageConf 2012
Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
Мониторинг производительности PHP-кода с помощью Pinba
Со временем число серверов будет расти, и рано или поздно вы зададитесь вопросами
«А что сейчас вообще происходит с системой? Как часто выполняется тот или иной скрипт и как долго? Какие операции занимают большую часть времени?» Системы мониторинга типа Zabbix дают лишь общую, поверхностную картину состояния приложения.
Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.