64-Bit-Linux mit 750 MB RAM: Lohnt es sich?

13

Ich habe einen Debian-Server VPS und der Anbieter hat 64-Bit-Debian 5 installiert. Sollte ich nach einer 32-Bit-Installation fragen, da ich nur 750 MB RAM habe und gehört habe, dass Variablen auf 64-Bit-Systemen mehr RAM benötigen?

Jhonnytunes
quelle
2
Kommt darauf an, was du eigentlich laufen wirst. Probieren Sie einige Ihrer Lasten aus und prüfen Sie, ob Ihr RAM ausreicht.
Renan
Ich laufe: Postgres, Apache und Tomcat.
Jhonnytunes
1
Hinweis: Sollten Sie sich später für ein Upgrade auf mehr RAM entscheiden, kann die 32-Bit-Version problematisch werden (es gibt PAE für das Polvaulting über der 4-GB-Grenze, aber das hat einen eigenen Overhead).
Piskvor hat das Gebäude
Beide VPS-Hosts haben benutzerdefinierte Kernel für ihre Hypervisoren installiert, sodass Sie sich wahrscheinlich an ihre Betriebssystemversionen halten müssen. Wenn sie keine 32-Bit-Version anbieten, können Sie wahrscheinlich nur Ihre eigenen Kernel installieren.
Rup

Antworten:

16

Die kurze Antwort :

Variablen belegen in 64-Bit- und 32-Bit-Software nicht den doppelten Speicherplatz. Der potenzielle Speichergewinn beim Umstieg auf ein 32-Bit-Betriebssystem ist die Mühe nicht wert.

Die lange Antwort :

Zahlen können ja größer sein, aber das heißt nicht, dass sie größer sein werden. Dies gilt auch für Zahlen, nicht für Zeichenfolgen, und Zeichenfolgen belegen (im Allgemeinen) den größten Speicherbedarf in einer Anwendung.

Darüber hinaus geben viele Anwendungen explizit die Größe der Zahl an, mit der sie arbeiten möchten, da in Sprachen wie C intjede beliebige Größe möglich ist, einschließlich einer Größe von weniger als 32 Bit. Auf meinem 64-Bit-Linux-Computer ist C int32-Bit. Sie müssten also explizit anfordern long long, eine 64-Bit-Nummer zu erhalten.

Im Grunde genommen werden Anwendungen nicht mehr Speicher verwenden, nur weil sie für 64-Bit kompiliert wurden.

BEARBEITEN :
Als Reaktion auf Gilles Behauptung, dass 64-Bit-Firefox doppelt so viel Speicher benötigt, habe ich einen Vergleich zwischen 32-Bit- und 64-Bit-Firefox auf meinem System durchgeführt.
Ich habe getestet, indem ich 5 Tabs gestartet habe, die geöffnet sind http://acid3.acidtests.org/ und habe den Test dreimal ausgeführt (einmal in 32-Bit, einmal in 64-Bit und dann zweimal wiederholt). Ich habe diese Site ausgewählt, weil sie JavaScript-intensiv ist und statischen Inhalt verwendet (jedes Rendering der Seite liefert dieselben Daten).

Auf dem letzten Lauf:

  • 32-Bit: 173.244 KB rss / 918.348 KB virt

  • 64-Bit: 184.588 KB rss / 966.624 KB virt

Ich könnte ja ausführlichere Tests machen, aber ich denke, das zeigt gut genug, dass der Größenunterschied zwischen den beiden marginal ist.

Patrick
quelle
1
Dies ist stark übertrieben. Einige Programme benötigen im 64-Bit-Modus fast doppelt so viel Speicher. Dies hängt davon ab, welche Art von Daten sie bearbeiten. Ich habe festgestellt, dass Firefox und Chrome mehr als doppelt so viel Speicher beanspruchen (ich habe nie untersucht, warum: Codegröße?). Für Apache ist der zusätzliche Speicherverbrauch wahrscheinlich gering (habe ich aber nicht gemessen).
Gilles 'SO - hör auf böse zu sein'
@giles kaum. Ich habe gerade einen 32-Bit- und einen 64-Bit-Firefox gestartet. 32-Bit verwendet nach dem Start 133.340 KB. 64-Bit verwendet nach dem Start 133.412 KB.
Patrick
Es hat sich möglicherweise in letzter Zeit verbessert, ich glaube, ich habe zuletzt mit Firefox 4 nachgesehen. Ich habe es mit einem ansonsten inaktiven System gemessen (auf dem fast nur 64-Bit-Programme ausgeführt werden, was die ausführbare 64-Bit-Datei begünstigen sollte, da einige der gemeinsam genutzten Bibliotheken bereits geladen waren). und Vergleichen der Größe des freien Speichers nach dem Laden einiger Registerkarten (einige JS, kein Flash): Ich habe festgestellt, dass (free_memory_with_ff_64 - free_memory_with_ff_32 - free_memory_with_ff)> 2 * ist.
Gilles 'SO- hör auf böse zu sein'
4
@ Gilles Ich denke, es gab einen Fehler im Test. Selbst wenn Firefox das letzte kleine Datenbit als Ganzzahl (keine Zeichenfolgen, die die Größe nicht ändern würden) und jede einzelne Ganzzahl von 32-Bit auf 64-Bit ändert, würde sich die Größe höchstens verdoppeln. Es gibt keine Erklärung für mehr als das Doppelte.
Patrick
2
"Zahlen können ja größer sein, aber das heißt nicht, dass sie größer sein werden." - Aber alle Zeiger werden jetzt definitiv 64-Bit sein, wo sie früher 32 waren.
Rup,
5

Für Systeme mit weniger als 4 GB RAM wähle ich 32-Bit-Installationen gegenüber 64-Bit-Installationen.

Bei 64-Bit-Versionen wird aufgrund der Art der Zeiger mehr Arbeitsspeicher benötigt. Bei einer Vanille-LAMP-Installation liegt dieser Wert zwischen etwa 10 und 50 Megabyte zusätzlich.

Auf einem System mit begrenztem RAM, z. B. 256 Megabyte, kann dies ein beträchtlicher Block sein.

Technisch gilt für PAE das Gleiche bis zu 64 Gigabyte, der adressierbare Speicherplatz für Anwendungen ist jedoch in jedem Fall auf 4 Gigabyte beschränkt. Daher wird bei mehr als 4 GIG empfohlen, 64-Bit zu verwenden, um die Leistungssteigerungen zu nutzen, nicht zuletzt die mit dem Overhead von PAE verbundenen.

Auf den Punkt gebracht: <4gig = 32bit | > 4gig = 64bit.

Tomwof
quelle
3

Wenn der Provider 64-Bit-Debian 5 installiert hat, empfehle ich Ihnen, bei dieser Version zu bleiben.

Unterschiede zwischen 64bit und 32bit gibt es nicht nur im Speichermanager.

Angelcervera
quelle
2

Abgesehen von einigen wenigen Anwendungen, bei denen die Anzahl der Einträge sehr hoch ist und die schneller ausgeführt werden, besteht der einzige Vorteil eines 64-Bit-Systems darin, dass Sie mehr als 4 GB Arbeitsspeicher adressieren können. Da ein Teil des Adressraums für den Kernel reserviert ist, erhält ein Prozess nur etwa 2 GB oder 3 GB Adressraum (oder mehr oder weniger, abhängig von der Kernelkonfiguration). In einem Datenbank- und Webserver-Anwendungsfall planen Sie nicht, viel zu tauschen, und Sie werden nicht viel Zahlenverarbeitung durchführen. Mit nur 750 MB RAM werden Sie also keinen Nutzen aus der Verwendung eines 64-Bit-Systems ziehen können.

Die Codegröße ist zwischen i386-Code (32 Bit) und amd64-Code (64 Bit) ungefähr gleich. Der von 64-Bit-Programmen verwendete Datenspeicher ist etwas größer. Wie viel größer ist, hängt von der Anwendung ab. Ich würde erwarten, dass sich für Ihren Anwendungsfall ein merklicher, aber nicht großer Unterschied ergibt.

Angesichts der geringen Kosten und der Tatsache, dass die Verwendung von 64-Bit keinen Nutzen bringt, empfehle ich die Verwendung eines 32-Bit-Systems, wenn die Beschaffung nicht zu schwierig ist.

Gilles 'SO - hör auf böse zu sein'
quelle