2014-05-08 25 views
13

Ich benutze tmux (in der Tat byobu mit tmux-Backend) auf Ubuntu 14.04.tmux mit 1G RAM auch nach dem Löschen aller Scrollback History

Mein tmux verwendet 1 GB Speicher (VIRT und RES in top) und ich habe bereits den clear-history Befehl verwendet.

Jetzt ist mein Scrollback verschwunden, aber die Speichernutzung geht nicht nach unten.

Dieser tmux lief für eine lange Zeit und viel Text scrollte durch ihn. top zeigt, dass insgesamt mehr als 1 Stunde CPU-Zeit verbraucht wurde.

Was könnte der Grund sein?

Könnte es ein Speicherleck geben?

Was könnte ich versuchen?

ich es nicht neu starten kann oder gefährliche Dinge tun, weil die Sitzung ein Experiment ausgeführt wird, die etwa eine Woche mehr in Anspruch nimmt ...

+0

Ist Ihr Bash/Shell-Geschichte irgendwie die Geschichte der tmux überschrieben? –

+0

Wie kann ich herausfinden, ob das der Fall ist? –

+0

Mit dem gleichen Problem auf tmux 1.6 ... – arman

Antwort

5

Da niemand diese beantwortet hat, werde ich meine Spekulation bieten, was passiert.

tmux reserviert Speicherplatz für seine Geschichte, und dieser Speicher wächst, wie Sie mehr von Ihrer Geschichte verbrauchen. Das Löschen des Verlaufs macht es unsichtbar, gibt jedoch nicht den tatsächlichen Speicher frei. Dies bedeutet, dass tmux Speicher die Gesamtzahl der Zeilen für jeden geöffneten Bereich speichern kann, unabhängig davon, ob diese Bereiche derzeit etwas in ihnen enthalten.

Dies ist wohl ein Fehler, oder ein schlechtes Feature im besten Fall.

Ich habe keine Lösung.

2

Es ist kein Fehler, tmux befreit den Speicher sofort, wenn Sie den Verlauf löschen. Es liegt an glibc, es an den Kernel zurückzugeben, und das ist schlecht. Sie sollten in der Lage sein zu sehen, dass der Speicher frei ist, denn wenn Sie den Verlauf bei etwa 10000 Zeilen löschen, wird die Speichernutzung nicht wieder anwachsen, bis der Verlauf wieder 10000 Zeilen erreicht.

+0

Würde glibc den Speicher früher zum Kernel zurückbringen, wenn der Rechner die Seiten stark ein- und austauscht (weil er keinen freien Speicher mehr hat)? –

8

Es scheint einen Fehler in tmux gegeben zu haben, der dazu führte, dass der Speicher bei einer History-Löschung nicht freigegeben wurde.

Dieser Fehler existierte bis einschließlich Version 1.9a, behoben in Version 2.0. Ich schreibe dies als eine späte Antwort, da Version 1.9a immer noch in Verwendung ist (zumindest bei mir).

https://groups.google.com/forum/#!topic/tmux-users/WiSZy6ft1As https://github.com/tmux/tmux/commit/28f23f18e9d79405a60348c4f7aeded33da9135b

+1

Mein tmux 2.1 ist immer noch speicherhungrig :-( –

+0

Ah, vergiss es, es war wegen 'set -g @ resurrect-capture-pane-contents 'on'', diese Option ist unbrauchbar. –