我想剖析我在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