Bitcoin-Daemon verbraucht über 581 MB Speicher mit 35 Verbindungen

2867
jaz

Mit 35 Verbindungen verbraucht mein Bitcoind 581 MB Speicher, was mehr als die Hälfte meines Gesamtspeichers in VPS (1024 insgesamt) ausmacht, und ich brauche Speicher auch für andere Dienste wie apache2 und mysql auf meinem Server. Kann ich Schritte unternehmen, um die von bitcoind verwendeten Ressourcen auf etwa 256 MB zu begrenzen, ohne die Funktionsfähigkeit von bitcoind stark einzuschränken? Ich vermute, ich kann die Anzahl der eingehenden / ausgehenden Verbindungen in Bitcoin.conf begrenzen, aber was wäre dann ein gutes Limit?

0
Das ist ein unpassender Ton der Antwort, und er spricht von einem Dämonenprozess. Ich halte es für sehr relevant, den Speicher von Daemon-Prozessen zu beschränken. Dies wird normalerweise nicht mit Desktop-Apps untersucht. Es sollte wieder auf Serverfault migriert werden ... Jeff Ferland vor 13 Jahren 0
Zustimmen, sollte auf Serverfehler zurückgehen. Wie auch immer - wie messen Sie den verbrauchten / verwendeten Speicher? Können Sie uns mehr über das Betriebssystem und andere Konfigs. EightBitTony vor 13 Jahren 1
OS ist Ubuntu Server 11.04 (nicht die beste Wahl, die ich kenne). Ich habe das vom Hosting-Unternehmen bereitgestellte Kontrollfeld openvz (shared kernel 2.6.18) verwendet, um zu sehen, dass zu viel Speicher verwendet wird. Dann habe ich "top" verwendet, um zuerst den Prozess zu identifizieren, der die meisten Ressourcen verbraucht. Dann habe ich "pmap -x" mit bitcoind pid verwendet, um zu sehen, wie viel es genau verbraucht. Grundsätzlich habe ich alle Befehle verwendet, die jeder Computerbesitzer wissen sollte. Wahrscheinlich wurde er deshalb von Serverfault zu Superuser verschoben. jaz vor 13 Jahren 0
@jaz Ich weiß, dass es schon einige Jahre her ist, aber nur als Referenz: Ihr Kommentar oben enthält keine nützlichen Informationen. Welches Feld oben? Was haben Sie in "pmap -x" gesehen? Physischer Speicher oder virtueller Speicher? David Schwartz vor 10 Jahren 0

3 Antworten auf die Frage

0
Jeff Ferland

Werfen Sie einen Blick auf https://stackoverflow.com/questions/4983120/limit-memory-usage-for-a-single-linux-process

Ich denke, Softlimit als Wrapper-Programm ist das, was Sie verwenden müssen. Ich weiß nicht ohne zu testen, ob dies den Austausch erzwingen oder einfach töten wird.

Den Prozess zu beenden ist schlecht, wenn die Software, auf der er läuft, stabil ist. Offensichtlich bietet OpenVZ VPS auch keinen Swap-Speicherplatz (gebrauchter Befehl "free"). Es sieht also so aus, als hätte ich hier ziemlich viel Glück. jaz vor 13 Jahren 0
Ich habe mir die Flaggen genauer angesehen - ich denke, Sie können reale Speichergrenzen von den gesamten Speichergrenzen trennen, so dass sie ausgetauscht werden sollten. Jeff Ferland vor 13 Jahren 0
0
starkers

Sie können MySQL und Apache anpassen, um die Arbeit mit viel weniger RAM als den Standardeinstellungen zu verwenden. Dies ist jedoch ein anderes Thema und offensichtlich ist dies möglicherweise keine Option (basierend auf dem Volumen Ihres Datenverkehrs usw.).

... bitcoind

Es ist interessant, dass es mit so vielen Knoten verbunden ist, dass es beim letzten Mal standardmäßig nur etwa 8 Verbindungen gibt

Ich würde vorschlagen, dies zu Ihrer ~ / .bitcoin / bitcoin.conf hinzuzufügen, um die Sitzungen vorerst zumindest zu begrenzen:

maxconnections = 8

(Verwenden Sie mehr, wenn Sie die gesamte Blockchain schneller (von Grund auf) synchronisieren möchten, und reduzieren Sie sie anschließend, obwohl ich nicht sicher bin, wie / ob dies ihren Fußabdruck beeinflusst.)

Ich habe momentan die Version 80600, 8 Verbindungen und ihre (RSS) um 320M

Ich denke, Bitcoind wird immer einen großen Teil oder einen RAM benötigen ... ( https://github.com/bitcoin/bitcoin/issues/2485 ) ...

Ich würde gerne wissen, was man über die Reduzierung des Speicherbedarfs lernen kann. Ich werde mich damit beschäftigen. (Ich verwende gut 10 Münzen auf einem Server, den ich hoste, und musste nur den RAM auf 4 g bringen, da er überall ausgetauscht wurde, daher wäre es gut zu wissen.)

Im Moment schlage ich ein paar Verbesserungen an mysqld und apache vor. Es gibt eine Vielzahl von Optionen. Für mysqld check mysqltuner.pl und starte die Zahlen (viele Tutorials da draußen, aber ich schlage kleine Änderungen auf einmal vor)

..dies ist von einer ziemlich kleinen mysqld, die ich auf einer meiner VMs (debian 6) laufe, die derzeit etwa 128 MB groß ist (aber möglicherweise bis zu 164 MB).

Beispiel:

[mysqld] key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K query_cache_limit = 1M query_cache_size = 16M  [mysql] [isamchk] key_buffer = 8M sort_buffer_size = 8M 

^^ (Wenn mysqld auf einem Himbeer-Pi laufen kann, kann dies sogar noch weiter reduziert werden.)

... Wenn Sie Stabilitätsprobleme haben, würde ich vorschlagen, zumindest eine Auslagerungsdatei zu erstellen und sie zu aktivieren.

Swapfiles sind abhängig von der verwendeten Virtualisierung möglicherweise keine Option, aber es ist besser als der Absturz der Dinge.

0
Cody Moniz

bitcoind benötigt eine Menge Speicher, während es die Blockchain herunterlädt. Sehen Sie sich diese Schritte an, um Ihren Swap Space unter Ubuntu richtig einzurichten:

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

Außerdem können Sie den Torrent-Download der Blockchain überprüfen. Solange Sie der Datei vertrauen, kann dies den Download der Blockchain beschleunigen.

http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download