我想剖析我在Go中编写的简单Web服务器。它接受请求,将请求映射到avro对象并在去程序中将其发送给Kafka。要求是它会立即回答并在稍后向Kafka发送一个对象。在本地它平均在1毫秒内回答。我一直试图通过使用davecheney/profile包启动脚本并使用jmeter发送测试请求来分析它。我可以在输出中看到生成的配置文件,但无论jemeter发送请求的时间长短,它仍然是空的。我在Mac El Capitan上运行它。我读到在Mac上进行分析时遇到了一些问题,但它将在El Capitan上工作。你有什么建议吗?剖析Golang服务器
回答
首先,我不确定您是否尝试执行延迟分析。如果是这样,请注意Go的CPU分析器仅报告在CPU上执行的函数花费的时间,并且不包括睡眠时间等。如果CPU Profiling确实是您要查找的内容,请继续阅读。
如果你正在运行一个Web服务器,只需在您的进口以下(其中主()是在文件中)和重建:
import _ "net/http/pprof"
然后,同时通过JMeter的应用负载,运行:
go tool pprof /path/to/webserver/binary http://<server>/debug/pprof/profile
net/http/pprof
软件包提供了分析挂钩,使您可以随时按需分析Web服务器,即使它在生产环境中运行。不过,如果您的网络服务器是公开暴露的,您可能希望为其使用不同的防火墙端口。
我没有得到任何“net/http/pprof”的结果:去工具pprof http:// localhost:8080/debug/pprof/block 从http:// localhost:8080/debug/pprof /块 服务器响应:204无内容 –
1)块分析需要显式启用https://golang.org/pkg/runtime/#SetBlockProfileRate 2)您需要包含正在分析数据的二进制文件的路径合理。 –
- 1. Python服务器实时剖析
- 2. PHP剖析与无服务器访问
- 3. Weblogic服务器启动剖析工具
- 4. 建议用于剖析Web服务器
- 5. “剖析”服务器端流星上的Javascript代码
- 6. VisualVM的剖析选项卡丢失了Tomcat服务器
- 7. Golang服务器超时
- 8. Golang gRPC服务器流
- 9. Golang http服务器实现
- 10. Golang HTTP服务器超时
- 11. 芹菜任务剖析
- 12. 剖析
- 13. Linux的Eclipse CDT剖析器
- 14. ARM代码剖析器
- 15. 编程语言剖析器
- 16. D编译器剖析
- 17. iPhone着色器剖析
- 18. Windows Eclipse CDT剖析器
- 19. ruby中的剖析器
- 20. 清除仪器CPU剖析
- 21. 剖析OCaml的编译器
- 22. 剖析图形着色器
- 23. 使用Golang和Windows服务器机器
- 24. 如何分析Golang Web应用程序服务器
- 25. 剖析R中
- 26. Python剖析
- 27. ngen和剖析
- 28. EProf Erlang剖析
- 29. Spring Boot剖析
- 30. 剖析.net库
你能分享一些代码吗? (一个简化的版本,只是显示你如何使用profiler) – HectorJ
你是否构建了一个更简单的例子,并成功地进行了性能分析?性能分析适用于Mac OS X的“破损”版本,即生成输出,但对于多个去程,它变得越来越不准确。还有一份报告显示,配置文件可以与OS X El Capitan正确配合。因此,程序设置可能不正确,因此建议先做一些简单的事情。 – gbulmer