home.social

#pprof — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pprof, aggregated by home.social.

  1. Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса

    Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.

    habr.com/ru/companies/otus/art

    #Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность

  2. Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса

    Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.

    habr.com/ru/companies/otus/art

    #Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность

  3. Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса

    Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.

    habr.com/ru/companies/otus/art

    #Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность

  4. Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса

    Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.

    habr.com/ru/companies/otus/art

    #Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность

  5. [Перевод] Сборщик мусора в Go. Часть 2: GC Traces

    Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.

    habr.com/ru/articles/948864/

    #go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings

  6. [Перевод] Сборщик мусора в Go. Часть 2: GC Traces

    Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.

    habr.com/ru/articles/948864/

    #go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings

  7. [Перевод] Сборщик мусора в Go. Часть 2: GC Traces

    Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.

    habr.com/ru/articles/948864/

    #go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings

  8. [Перевод] Сборщик мусора в Go. Часть 2: GC Traces

    Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.

    habr.com/ru/articles/948864/

    #go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings

  9. Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go

    Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.

    habr.com/ru/articles/918738/

    #go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности

  10. Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go

    Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.

    habr.com/ru/articles/918738/

    #go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности

  11. Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go

    Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.

    habr.com/ru/articles/918738/

    #go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности

  12. Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go

    Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.

    habr.com/ru/articles/918738/

    #go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности

  13. Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI

    За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.

    habr.com/ru/companies/netology

    #golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt

  14. Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI

    За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.

    habr.com/ru/companies/netology

    #golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt

  15. Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI

    За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.

    habr.com/ru/companies/netology

    #golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt

  16. Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI

    За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.

    habr.com/ru/companies/netology

    #golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt

  17. Nothing to crack me up like #pprof on a Monday morning

  18. Nothing to crack me up like #pprof on a Monday morning

  19. Nothing to crack me up like on a Monday morning

  20. Nothing to crack me up like #pprof on a Monday morning

  21. Nothing to crack me up like #pprof on a Monday morning

  22. I've been using #pprof for a long time, but not until yesterday did I know about the "list" command. And wow, it is *amazing*. From the pprof terminal, just type "list" followed by the name of a function call the "top" command (or your flamegraph or whatever) shows as a top allocator, and you'll see exactly where in your code memory is allocated, and how much 🤯

    #golang #performance #development

  23. I've been using #pprof for a long time, but not until yesterday did I know about the "list" command. And wow, it is *amazing*. From the pprof terminal, just type "list" followed by the name of a function call the "top" command (or your flamegraph or whatever) shows as a top allocator, and you'll see exactly where in your code memory is allocated, and how much 🤯

    #golang #performance #development

  24. I've been using for a long time, but not until yesterday did I know about the "list" command. And wow, it is *amazing*. From the pprof terminal, just type "list" followed by the name of a function call the "top" command (or your flamegraph or whatever) shows as a top allocator, and you'll see exactly where in your code memory is allocated, and how much 🤯

  25. I've been using #pprof for a long time, but not until yesterday did I know about the "list" command. And wow, it is *amazing*. From the pprof terminal, just type "list" followed by the name of a function call the "top" command (or your flamegraph or whatever) shows as a top allocator, and you'll see exactly where in your code memory is allocated, and how much 🤯

    #golang #performance #development

  26. I've been using #pprof for a long time, but not until yesterday did I know about the "list" command. And wow, it is *amazing*. From the pprof terminal, just type "list" followed by the name of a function call the "top" command (or your flamegraph or whatever) shows as a top allocator, and you'll see exactly where in your code memory is allocated, and how much 🤯

    #golang #performance #development

  27. Finally broke down to use to debug why some of my code was slow in a test. It quickly pointed me to a completely different part of the code than I was editing. The coverage report later pointed out another hard to spot bug.

    It's days like this that I really enjoy developing in Go. The strong test integration is saving me countless hours of debugging hard to spot issues in the future.

  28. Finally broke down to use #pprof to debug why some of my #Golang code was slow in a test. It quickly pointed me to a completely different part of the code than I was editing. The coverage report later pointed out another hard to spot bug.

    It's days like this that I really enjoy developing in Go. The strong test integration is saving me countless hours of debugging hard to spot issues in the future.

  29. Finally broke down to use #pprof to debug why some of my #Golang code was slow in a test. It quickly pointed me to a completely different part of the code than I was editing. The coverage report later pointed out another hard to spot bug.

    It's days like this that I really enjoy developing in Go. The strong test integration is saving me countless hours of debugging hard to spot issues in the future.

  30. Finally broke down to use #pprof to debug why some of my #Golang code was slow in a test. It quickly pointed me to a completely different part of the code than I was editing. The coverage report later pointed out another hard to spot bug.

    It's days like this that I really enjoy developing in Go. The strong test integration is saving me countless hours of debugging hard to spot issues in the future.

  31. Finally broke down to use #pprof to debug why some of my #Golang code was slow in a test. It quickly pointed me to a completely different part of the code than I was editing. The coverage report later pointed out another hard to spot bug.

    It's days like this that I really enjoy developing in Go. The strong test integration is saving me countless hours of debugging hard to spot issues in the future.

  32. I've been switching my laptop over the last week. Today got to install some old friends like #R and #ggplot2 along with the usual #golang env and check that #pprof is working.

  33. I've been switching my laptop over the last week. Today got to install some old friends like and along with the usual env and check that is working.

  34. I've been switching my laptop over the last week. Today got to install some old friends like #R and #ggplot2 along with the usual #golang env and check that #pprof is working.

  35. I've been switching my laptop over the last week. Today got to install some old friends like #R and #ggplot2 along with the usual #golang env and check that #pprof is working.

  36. I've been switching my laptop over the last week. Today got to install some old friends like #R and #ggplot2 along with the usual #golang env and check that #pprof is working.

  37. CW: #AdventOfCode, day 15

    Had some fun optimizing my #AdventOfCode (day 15) solution written in #GoLang using #pprof today. There's a lot of garbage collection activity in the first graph from before and none in the second one from after.

  38. CW: #AdventOfCode, day 15

    Had some fun optimizing my #AdventOfCode (day 15) solution written in #GoLang using #pprof today. There's a lot of garbage collection activity in the first graph from before and none in the second one from after.

  39. CW: #AdventOfCode, day 15

    Had some fun optimizing my #AdventOfCode (day 15) solution written in #GoLang using #pprof today. There's a lot of garbage collection activity in the first graph from before and none in the second one from after.

  40. CW: #AdventOfCode, day 15

    Had some fun optimizing my #AdventOfCode (day 15) solution written in #GoLang using #pprof today. There's a lot of garbage collection activity in the first graph from before and none in the second one from after.

  41. CW: #AdventOfCode, day 15

    Had some fun optimizing my #AdventOfCode (day 15) solution written in #GoLang using #pprof today. There's a lot of garbage collection activity in the first graph from before and none in the second one from after.