溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何發現golang的內存泄露

發布時間:2020-06-10 18:47:57 來源:億速云 閱讀:433 作者:鴿子 欄目:編程語言

1、給系統壓力,內存占用增大,但停止打壓后,內存不能降低,則可能有內存泄漏。

2、top不能實時反映程序占用內存,因Go向系統申請內存不使用后,并不立即歸還系統。

3、程序占用系統內存、Go的堆內存、實際使用內存:從系統申請的內存會在Go的內存池管理,整塊的內存頁,長時間不被訪問并滿足一定條件后,才歸還給操作系統。又因為有GC,堆內存也不能代表內存占用,清理過之后剩下的,才是實際使用的內存。

在Go中發現內存泄露有2種方法,一個是通用的監控工具,另一個是go pprof:

監控工具:固定周期對進程的內存占用情況進行采樣,數據可視化后,根據內存占用走勢(持續上升),很容易發現是否發生內存泄露。

go pprof:適合沒有監控工具的情況,使用Go提供的pprof工具判斷是否發生內存泄露。

監控工具查看進程內在占用情況

如果使用云平臺部署Go程序,云平臺都提供了內存查看的工具,可以查看OS的內存占用情況和某個進程的內存占用情況,比如阿里云,我們在1個云主機上只部署了1個Go服務,所以OS的內存占用情況,基本是也反映了進程內存占用情況,OS內存占用情況如下,可以看到隨著時間的推進,內存的占用率在不斷的提高,這是內存泄露的最明顯現象:

如何發現golang的內存泄露

以上就是golang 內存泄露的原因的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女