golang - goroutine 洩漏
为情所困
为情所困 2017-04-26 09:01:29
0
0
771

描述

需求是開發一個golang binary週期性收集host上docker container的log資訊。結果運行的時候使用go pprof查看發現goroutine洩露了。自己試了半天沒解決。

詳情

  • 記憶體使用情況,記憶體會不斷增加,一直到33m:

    CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS goleak 0.00% 11.25 MiB / 32 MiB 35.14% 0 B / 0 B 6.112 MB / 0 B 0
  • pprof中結果:

    /debug/pprof/ profiles: 0 block 63 goroutine 0 heap 7 threadcreate full goroutine stack dump

    由於debug期間個人對程式碼進行了最佳化,是個goroutine增加速度大大降低。最多的時候有3000個。

GitHub repo

goroutine-leak,使用govendor管理依賴套件。
我把有問題的程式碼抽離出來放到main.go裡,並且維護在了github上,地址goroutine-leak。裡面預設整合了pprof功能,有興趣的夥伴可以一起debug學習下。

我也會不斷嘗試各種方法來解決這個問題。

为情所困
为情所困

全部回覆 (0)
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!