Go за гранью скорости: pprof на проде | avito.code

Поделиться
HTML-код
  • Опубликовано: 25 июл 2024
  • Привет! Это avito.code. Здесь опытные инженеры Авито делятся знаниями и рассказывают про свои рабочие инструменты.
    В этом выпуске Иван Нещадин, старший инженер в команде Architecture Governments, продолжает делиться опытом оптимизации и профилирования приложений на Go. Речь пойдет о том, как использовать pprof на проде. Добавление специальных хендлеров в http-сервер сервиса.
    Таймкоды
    00:00 | Вступление
    00:45 | Как добавлять хендлеры в http-сервер
    03:12 | Собираем профиль CPU
    05:26 | Как сработала утилита wrk
    06:41 | Смотрим на полученный профиль
    08:29 | Собираем профиль памяти с помощью pprof
    11:41 | Разбираемся, где и почему было выделено 7 миллионов объектов
    13:31 | Пробуем убедиться, что проблема заключается в garbage collector
    15:44 | Заменяем библиотеку на bigcash
    17:11 | Ещё раз нагружаем сервис
    20:05 | Заключение
    AvitoTech - это команда инженеров Авито. Подпишитесь на наш канал, соцсети и блоги, чтобы узнавать больше о технологиях Авито 👇🏻
    ВК: avitotech
    Телеграм: t.me/avitotech
    Хабр: habr.com/ru/company/avito
    Медиум (eng): / avitotech
    Гитхаб: github.com/avito-tech
    Сайт: avito.tech
    #avitocode #go #pprof
  • НаукаНаука

Комментарии • 17

  • @ayaz.ayupov
    @ayaz.ayupov 6 месяцев назад +2

    просмотрел больше 10 видео про pprof, это видео без сомнения лучшее
    спасибо

  • @skubach
    @skubach Год назад +4

    Сравнение профилей 🔥

  • @user-kp4mt2jc3d
    @user-kp4mt2jc3d 10 месяцев назад

    Отличная подача материала, спасибо!

  • @chemax87
    @chemax87 Год назад +1

    Большое спасибо

  • @viktorsolovev8401
    @viktorsolovev8401 11 месяцев назад

    Пуля-бомба. Спасибо!

  • @ofp1979
    @ofp1979 3 месяца назад

    что мешает в данном видео сделать чтобы введённые команды переносились на следующую строку для читабельности?

  • @Iyozy
    @Iyozy Год назад +1

    Спасибо за видео. Насколько это плохая идея сделать хранилище на хэш таблицах, если придётся там хранить большой объем данных, их придётся так же прятать от GC, как я понимаю.

    • @AvitoTech
      @AvitoTech  11 месяцев назад +3

      Добрый день!
      Получится тот же самый эффект, что и на видео, ведь в видео по-сути тоже используется библиотека, внутри которой и используется хэш мапа (github.com/bluele/gcache/blob/master/lru.go#L11). Но это зависит от того, сколько вы объектов планируете хранить, если до 100к, то в целом решение должно подойти, но если больше - лучше уже смотреть в сторону github.com/allegro/bigcache

    • @hooker7108
      @hooker7108 Месяц назад

      @@AvitoTechа что если хранить структуры неопределенного размера в байтах? Bigcache не подойдет?

  • @glebdanichev9956
    @glebdanichev9956 Год назад +2

    2023 год у них в коде interface{} 🤦‍♂️

    • @exitialislp
      @exitialislp Год назад +8

      Это код сторонней библиотеки 2021 года. А чем вам так interface{} не угодил?

    • @glebdanichev9956
      @glebdanichev9956 Год назад

      @@exitialislp про генерики слышали ?

    • @user-td6vu1hh3y
      @user-td6vu1hh3y 11 месяцев назад

      алиас any наверное подразумевается@@exitialislp

    • @user-xl1qb5yn1z
      @user-xl1qb5yn1z 11 месяцев назад +1

      покажите ваш гитхаб

    • @glebdanichev9956
      @glebdanichev9956 11 месяцев назад

      Про any слышали ?