我已經使用golang構建了一個使用golang反向代理的應用程序api網關,但是我能夠看到逐漸增加的內存,並且我嘗試了個人資料,這裏是開始後幾小時內的圖表。有沒有這方面的問題或預期的問題?所有的分配都是通過內置軟件包和內部複用器發生的。Golang:在net/http分配的堆中不斷增加(內存泄漏),
1
A
回答
5
當然的事,監視你的應用程序,讓你知道什麼驅使使用率(數量的當前請求的,等等),然後用資源使用(CPU,內存關聯起來,當前存在的門店數量等)。您應該有應用程序資源使用的因果模型,並監視是否存在重大偏差。總之,採取系統的方法來衡量和監測資源使用情況。
進口 「運行」
FUNC NumGoroutine()詮釋
NumGoroutine返回當前存在的夠程的數量。
例如,監視並關聯當前存在的goroutine的數量。根據關鍵的應用程序驅動程序,goroutines的數量應該圍繞穩定狀態擺動,例如當前請求的數量。
如果你沒有在你的程序中正確終止goroutines,那麼他們就成爲不活躍的孤兒。孤兒goroutines保留內存,goroutine內存泄漏。隨着時間的推移,您應該會看到內存使用量穩步增加。
您的應用程序的goroutine模型是什麼?什麼是您的應用程序的goroutine統計數據?他們是否與記憶相關聯。他們與增加時間相關嗎?
相關問題
- 1. 內存泄漏在C /內存分配++
- 2. Golang程序內存泄漏?
- 3. 分配的內存不斷增加
- 4. Python +不斷增加的內存分配
- 5. 內存泄漏:在線分配的對象的潛在泄漏
- 6. 內存泄漏在NSObject的分配
- 7. 在內存分配分析過程中內存分配不斷增加
- 8. 在uiwebview分配內存泄漏
- 9. Node.js的內存泄漏,儘管不斷堆+ RSS大小
- 10. WebClient.DownloadString()的內存泄漏/分配問題?
- 11. 的Java分配內存泄漏
- 12. 內存不斷增長,但沒有泄漏報告
- 13. 自定義分配器泄漏內存
- 14. iphone內存分配和泄漏
- 15. 動態分配泄漏內存?
- 16. SpenInView的內存泄漏本地堆棧
- 17. 內存分配與ARC - 沒有泄漏,但緩慢地堆積內存
- 18. 內存泄漏問題,私人數據不斷增加.Net Framework 4
- 19. IOS內存泄漏分析
- 20. 分離pthread_create()泄漏內存
- 21. c#內存泄漏分析
- 22. .NET內存泄漏分析
- 23. 如何分析IntelliJ中的堆轉儲? (內存泄漏)
- 24. 增加內存佔用。錯誤報警或內存泄漏?
- 25. 獲取分配在堆上的塊的數量以檢測內存泄漏
- 26. iPhone:存在內存泄漏分析器?
- 27. 內存泄漏C#異步(堆棧)
- 28. 內存泄漏和堆損壞?
- 29. 返回堆棧和內存泄漏
- 30. 內存泄漏,儘管釋放分配的內存
因此,經過一小時的積極使用,你的Go網絡服務器分配和使用30 MB的RAM,你認爲這是多少?圖中沒有任何錯誤。沒有足夠的數據來安全地聲明應用程序中存在內存泄漏。嘗試更長時間的配置文件。同時檢查出這個答案:[Golang - 不能釋放曾經被bytes.Buffer佔用過的內存](https://stackoverflow.com/questions/37382600/golang-cannot-free-memory-once-occupied-by-bytes-buffer/ 37383604#37383604)。 – icza
我檢查過它......並且看到它在幾天後逐漸增加到1 GB的內存。我不擔心使用內存,但它應該清理的未使用的內存,不管是1MB,如果它不再使用它應該釋放的應用程序。 – Ysak
還檢查了這個答案,以防止分配大內存的提示:[釋放未使用的內存?](https://stackoverflow.com/questions/45509538/freeing-unused-memory/45509642#45509642) – icza