#pprof — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #pprof, aggregated by home.social.
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
[Перевод] Сборщик мусора в Go. Часть 2: GC Traces
Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.
https://habr.com/ru/articles/948864/
#go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings
-
[Перевод] Сборщик мусора в Go. Часть 2: GC Traces
Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.
https://habr.com/ru/articles/948864/
#go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings
-
[Перевод] Сборщик мусора в Go. Часть 2: GC Traces
Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.
https://habr.com/ru/articles/948864/
#go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings
-
[Перевод] Сборщик мусора в Go. Часть 2: GC Traces
Команда Go for Devs подготовила перевод статьи о том, как оптимизация аллокаций в Go может снизить нагрузку на сборщик мусора и ускорить приложение почти в два раза. Автор показывает на примере реального веб-приложения, как профилировать кучу, находить «горячие» места и убирать лишние аллокации, чтобы снизить задержки и повысить пропускную способность.
https://habr.com/ru/articles/948864/
#go #garbage_collector #gc #профилирование #pprof #оптимизация #аллокаций #производительность #heap #strings
-
Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go
Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.
https://habr.com/ru/articles/918738/
#go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности
-
Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go
Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.
https://habr.com/ru/articles/918738/
#go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности
-
Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go
Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.
https://habr.com/ru/articles/918738/
#go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности
-
Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go
Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? В этой статье мы разбираем как работать со встроенным профайлером в Пo.
https://habr.com/ru/articles/918738/
#go #golang #backend #it #информационные_технологии #разработка #база #pprof #профилирование #профилирование_производительности
-
Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI
За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.
https://habr.com/ru/companies/netologyru/articles/909672/
#golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt
-
Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI
За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.
https://habr.com/ru/companies/netologyru/articles/909672/
#golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt
-
Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI
За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.
https://habr.com/ru/companies/netologyru/articles/909672/
#golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt
-
Секреты эффективного кодирования на Go для опытных и новичков: профайлинг, тесты, CI
За последние два года Go-сообщество выросло на 55% — с 3 млн до 4,7 млн разработчиков. Многие пришли в Go из других языков или только начинают свой путь в программировании. Без понимания идиоматики и ключевых особенностей языка даже опытные специалисты нередко сталкиваются с медленным кодом, дедлоками и утечками памяти. Так что сегодня разберём, как организовывать пакеты, обрабатывать ошибки, безопасно работать с горутинами и каналами, оптимизировать аллокации и профилировать «горячие» участки через pprof. Советы одинаково пригодятся и опытным Golang-разработчикам, и тем, кто только начинает свой путь в Go.
https://habr.com/ru/companies/netologyru/articles/909672/
#golang #go #практический_гайд #профайлинг #тесты #ci #стресспаузы #pprof #less_is_more #gofmt
-
-
-
-
-
-
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 🤯
-
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 🤯
-
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 🤯
-
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 🤯
-
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 🤯
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.