Heim  >  Artikel  >  Backend-Entwicklung  >  Gründe für Golang-Speicherlecks

Gründe für Golang-Speicherlecks

(*-*)浩
(*-*)浩Original
2019-12-27 10:47:104041Durchsuche

Gründe für Golang-Speicherlecks

1 Wenn Sie Druck auf das System ausüben, erhöht sich die Speichernutzung. Wenn der Speicher jedoch nach dem Stoppen des Drucks nicht reduziert werden kann, liegt möglicherweise ein Speicherverlust vor. (Empfohlenes Lernen: GO )

2, TOP kann den Vorgang zum Belegen des Speichers nicht in Echtzeit widerspiegeln, da das System das System nicht sofort nach der Anwendung zurückgibt Der Speicher des Systems wird nicht genutzt.

3. Das Programm belegt den Systemspeicher, den Heap-Speicher von Go und den tatsächlich verwendeten Speicher: Der vom System angewendete Speicher wird im Speicherpool von Go verwaltet und es wird nicht auf die gesamte Speicherseite zugegriffen Es wird erst nach längerer Zeit an das Betriebssystem zurückgegeben, wenn bestimmte Bedingungen erfüllt sind. Und aufgrund des GC stellt der Heap-Speicher nicht die Speichernutzung dar. Nach der Bereinigung bleibt der tatsächlich verwendete Speicher übrig.

Es gibt zwei Möglichkeiten, Speicherlecks in Go zu finden: Eine ist ein allgemeines Überwachungstool und die andere ist go pprof:

Überwachungstool: Überwachung in festen Zeiträumen Der Prozess Die Speichernutzung wird abgetastet. Nachdem die Daten visualisiert wurden, kann anhand des Speichernutzungstrends (kontinuierlicher Anstieg) leicht festgestellt werden, ob ein Speicherverlust vorliegt.

go pprof: Geeignet für Situationen, in denen kein Überwachungstool vorhanden ist. Verwenden Sie das von Go bereitgestellte pprof-Tool, um festzustellen, ob ein Speicherverlust aufgetreten ist.

Überwachungstools zur Überprüfung der internen Nutzung des Prozesses

Wenn Sie die Cloud-Plattform zum Bereitstellen von Go-Programmen verwenden, stellt die Cloud-Plattform Speicheranzeigetools zur Überprüfung des Speichers bereit Nutzung des Betriebssystems und die Speichernutzung eines bestimmten Prozesses. In Alibaba Cloud stellen wir beispielsweise nur einen Go-Dienst auf einem Cloud-Host bereit, sodass die Speichernutzung des Betriebssystems im Wesentlichen die Speichernutzung des Betriebssystems widerspiegelt Die Nutzung ist wie folgt. Sie können sehen, dass die Speichernutzung mit der Zeit weiter zunimmt, was das offensichtlichste Phänomen von Speicherlecks ist:

Gründe für Golang-Speicherlecks

Das obige ist der detaillierte Inhalt vonGründe für Golang-Speicherlecks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn