Профилирование Перейти к устранению неполадок программы, которые застряли - PullRequest
0 голосов
/ 08 июля 2019

Я недавно начал работать с GoLang и попытался интегрировать его с Redis.поэтому я использовал для этого библиотеку radix, хотя время от времени моя программа зависала, и я не могу понять, что вызвало ее зависание.Я попытался использовать pprof, чтобы лучше проанализировать его, но у меня не было результатов, которые могли бы определить причину этого зависания.

Я получил почти 100% своего ЦП, затраченного на runtime.gopark:

Type: goroutine
Showing nodes accounting for 110, 100% of 110 total
flat flat% sum% ■■■ ■■■%
108 98.18% 98.18% 108 98.18% runtime.gopark
1 0.91% 99.09% 1 0.91% runtime.notetsleepg
1 0.91% 100% 1 0.91% runtime/pprof.writeRuntimeProfile

когда я использую pprof с профилем, я также получаю 100%, потраченный на runtime.usleep

Duration: 10s, Total samples = 10ms ( 0.1%)
Showing nodes accounting for 10ms, 100% of 10ms total
flat flat% sum% ■■■ ■■■%
10ms 100% 100% 10ms 100% runtime.usleep
0 0% 100% 10ms 100% runtime.mstart
0 0% 100% 10ms 100% runtime.mstart1
0 0% 100% 10ms 100% runtime.sysmon

pprof мьютекс и блок ничего не возвращает

Этовыходные данные кучи:

File: gw
Type: inuse_space
Time: Jul 7, 2019 at 10:23pm (UTC)
Showing nodes accounting for 5370.73kB, 100% of 5370.73kB total
----------------------------------------------------------±------------
flat flat% sum% ■■■ ■■■% calls calls% + context
----------------------------------------------------------±------------
1028kB 50.00% | bufio.NewWriter
1028kB 50.00% | github.com/valyala/fasthttp.acquireWriter
2056.01kB 38.28% 38.28% 2056.01kB 38.28% | bufio.NewWriterSize
----------------------------------------------------------±------------
1778.29kB 100% | compress/flate.NewWriter
1195.29kB 22.26% 60.54% 1778.29kB 33.11% | compress/flate.(*compressor).init
583.01kB 32.78% | compress/flate.newDeflateFast
----------------------------------------------------------±------------
583.01kB 100% | compress/flate.(*compressor).init
583.01kB 10.86% 71.39% 583.01kB 10.86% | compress/flate.newDeflateFast
----------------------------------------------------------±------------
....

Я также попытался выяснить, является ли проблема redis, поэтому я создал клиент, который вызывает его, чтобы убедиться, что он все еще доступен, и, похоже, он хорошо работает

Есть какие-нибудь предложения, как я могу лучше проанализировать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...