perf
-
Хабрахабр
Как профилировать, когда perf видит не все
В современных системах интерпретаторы используются повсеместно. Для проверки на соответствие ожиданиям по производительности их необходимо профилировать. Но когда значительная часть логики исполняется встроенным интерпретатором, окинуть взглядом общую картину при профилировании становится крайне затруднительно, потому что существующие инструменты не способны отражать переходы между интерпретируемой и нативной частями системы.Меня зовут Максим Кокряшкин, я занимаюсь поддержкой и расширением функциональности форка LuaJIT, интегрированного в…
Читать далее » -
Хабрахабр
Как мы планировали повысить версию PHP за месяц, а потратили на это год
Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. Все сервисы написаны на C++ с использованием фреймворка userver. Также мы активно развиваем внутренний фреймворк для сервисов на Golang. При этом стараемся использовать последние версии и стандарты языков. В общей сложности у нас чуть больше 200 микросервисов. Но есть один сервис, который совсем не микро. Это легаси-монолит, доставшийся Яндекс Еде после объединения…
Читать далее » -
Хабрахабр
[Перевод] Управление производительностью с Python 3.12
В Python 3. 12 появилась поддержка perf profiling. В этой статье рассмотрим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perf, а также графики Flame Graph (добавить пояснение: способ визуализации процессорного времени, потраченного на функции), посмотрим на дизассемблированный код и займемся поиском ошибок. Код из статьи можно посмотреть здесь. Загляните на соответствующую страницу…
Читать далее » -
Хабрахабр
Профайлер Бедного Человека: первое знакомство и (приятные) последствия
Если вам приходилось оптимизировать работу программ, то вы могли слышать о Профайлере Бедного Человека. Этой идее даже посвящён целый сайт. ПБЧ собирает статистику времени выполнения отдельных функций программы, «подглядывая» в процесс её исполнения с помощью дебаггера. Концепт ПБЧ хорошо прижился у нас в движке баннерной крутилки — не буду в 100 500-й раз напоминать, что у Яндекса всё высоконагруженное, ресурсоёмкое и…
Читать далее » -
Хабрахабр
Entity Framework Core и высокая производительность
Entity Framework Core является рекомендованным и самым популярным средством взаимодействия с реляционными базами данных на платформе ASP NET Core. Это мощный инструмент который подходит для большинства сценариев, но, как и любой другой инструмент имеет свои ограничения. Долгое время бытовало мнение (и не безосновательно) что Entity Framework не подходит для высоконагруженных систем и в таких сценариях лучше использовать Dapper. Но время…
Читать далее » -
Хабрахабр
Битвы на территории ZFS
Один из крупных клиентов нашей компании попал в грустную ситуацию: базы данных подросли, потребности тоже, купили мощные NUMA-сервера, установили любимую файловую систему ZFS (ZFS — для краткости: формально это OpenZFS), а производительность PostgreSQL стала хуже, чем до покупки. Базы нешуточные: две базы, в каждой по 180ТБ. В них сливаются данные из многих других, непостгресовых баз. А этими, огромными напрямую пользуются…
Читать далее » -
Хабрахабр
[Перевод] Отслеживание пути пакета с помощью точек трассировки Linux, perf и eBPF
Я давно искал какой-нибудь инструмент для низкоуровневой отладки сети Linux. Linux позволяет создавать сложные сети, запускаемые прямо на хосте, используя комбинацию из виртуальных интерфейсов и сетевого пространства имен. Когда что-то идет не так решение возникших проблем утомительно. Если это проблема маршрутизации L3, mtr (Matt's traceroute) имеет неплохие шансы принести пользу. Однако, если проблема на более низком уровне, обычно все заканчивается…
Читать далее » -
Хабрахабр
Анализ производительности запросов в ClickHouse. Доклад Яндекса
Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что даёт СУБД ClickHouse, и о возможностях ОС, которые должны быть известны каждому. Например, он работает одну секунду. Каждый раз, когда я…
Читать далее » -
Хабрахабр
Perf и flamegraphs
В этой статье мы расскажем об одном инструменте для поиска этих самых мест на примере работы блочного стека в Linux и одного случая траблшутинга работы хоста. Огромную популярность набирает тема повышения производительности операционных систем и поиска узких мест. Пример 1. Тестовый Ничего не работает Тестирование в нашем отделе ― это синтетика на продуктовом железе, а позже ― тесты прикладного ПО.…
Читать далее » -
Хабрахабр
Производительность PHP: планируем, профилируем, оптимизируем
Два года назад мы писали о том, как перешли на PHP 7. Привет, Хабр! На нашем профиле нагрузки новая версия оказалась в два раза более эффективной по использованию CPU: ту нагрузку, которую раньше у нас обслуживали ~600 серверов, после перехода начали обслуживать ~300. 0 и сэкономили миллион долларов. В результате на протяжении двух лет у нас был запас мощностей. Количество…
Читать далее »