Exécuter Linux 64 bits avec 750 Mo de RAM: ça vaut le coup?

13

J'ai un serveur Debian VPS et le fournisseur a installé Debian 5. 64 bits. Dois-je demander une installation 32 bits, étant donné que je n'ai que 750 Mo de RAM et que j'ai entendu dire que les variables prennent plus de RAM sur les systèmes 64 bits?

Jhonnytunes
la source
2
Cela dépend de ce que vous allez exécuter, en fait. Essayez certaines de vos charges et vérifiez si votre RAM sera suffisante.
Renan
Mauvais run: Postgres, Apache et Tomcat.
Jhonnytunes
1
Remarque: si vous décidez de mettre à niveau vers plus de RAM plus tard, le 32 bits peut devenir problématique (il y a un PAE pour le saut de pôle au-dessus de la limite de 4 Go, mais cela a ses propres frais généraux).
Piskvor a quitté le bâtiment
Les deux hôtes VPS que j'ai utilisés ont installé des noyaux personnalisés pour leurs hyperviseurs, il est donc probable que vous devrez vous en tenir à leurs versions du système d'exploitation - s'ils n'offrent pas 32 bits, je doute que vous puissiez simplement installer le vôtre.
Rup

Réponses:

16

La réponse courte :

Les variables ne prennent pas le double de l'espace dans les logiciels 64 bits contre 32 bits. Le gain de mémoire potentiel du passage à un système d'exploitation 32 bits ne vaudra pas la peine.

La réponse longue :

Les chiffres peuvent être plus grands oui, mais cela ne signifie pas qu'ils le seront. Cela s'applique également aux nombres, pas aux chaînes, et les chaînes sont (généralement) celles qui consomment le plus de mémoire dans une application.

De plus, de nombreuses applications spécifient explicitement la taille du nombre avec intlequel elles souhaitent travailler, comme dans les langages comme C, elles peuvent être de n'importe quelle taille, y compris inférieure à 32 bits. Et aller encore plus loin, sur ma machine Linux 64 bits, en C intc'est 32 bits. Il vous faudrait donc demander explicitement long longà obtenir un numéro 64 bits.

Donc, fondamentalement, les applications ne vont pas utiliser plus de mémoire simplement parce qu'elles ont été compilées pour 64 bits.

EDIT :
En réponse à l'affirmation de Gilles selon laquelle Firefox 64 bits utilise deux fois plus de mémoire, je suis allé faire une comparaison entre Firefox 32 bits et 64 bits sur mon système.
J'ai testé en lançant 5 onglets ouverts sur http://acid3.acidtests.org/ et j'ai effectué le test 3 fois (une fois en 32 bits, une fois en 64 bits, puis répétez deux fois). J'ai choisi ce site car il utilise beaucoup de JavaScript et utilise du contenu statique (chaque rendu de la page fournira les mêmes données).

Sur la dernière course:

  • 32 bits: 173 244 Ko rss / 918 348 Ko virt

  • 64 bits: 184,588 kb rss / 966,624kb virt

Je pourrais faire des tests plus approfondis oui, mais je pense que cela démontre assez bien que la différence de taille entre les deux est marginale.

Patrick
la source
1
C'est extrêmement exagéré. Certains programmes prennent presque deux fois plus de mémoire en mode 64 bits, cela dépend du type de données qu'ils manipulent. J'ai remarqué que Firefox et Chrome prennent encore plus du double de la mémoire (je n'ai jamais cherché pourquoi: taille du code?). Pour Apache, la consommation de mémoire supplémentaire est probablement faible (mais je n'ai pas mesuré).
Gilles 'SO- arrête d'être méchant'
@giles à peine. Je viens de lancer un firefox 32 bits et 64 bits. 32 bits utilise 133 340 Ko après le lancement. 64 bits utilise 133,412 Ko après le lancement.
Patrick
Il s'est peut-être amélioré récemment, je pense que j'ai vérifié pour la dernière fois avec Firefox 4. J'ai mesuré en prenant un système autrement inactif (exécutant presque uniquement des programmes 64 bits, ce qui devrait favoriser l'exécutable 64 bits car certaines de ses bibliothèques partagées étaient déjà chargées) et en comparant la quantité de mémoire libre après le chargement de quelques onglets (certains JS, pas de Flash): j'ai trouvé que (free_memory_with_ff_64 - free_memory_without_ff)> 2 * (free_memory_with_ff_32 - free_memory_without_ff).
Gilles 'SO- arrête d'être méchant'
4
@Gilles Je pense qu'il y avait un défaut dans le test. Même si firefox stockait chaque dernier bit de données sous forme d'entier (pas de chaînes, ce qui ne changerait pas la taille), et que chaque entier passait de 32 bits à 64 bits, la taille doublerait tout au plus. Il n'y a aucune explication à plus que doubler.
Patrick
2
"Les chiffres peuvent être plus grands oui, mais cela ne signifie pas qu'ils le seront." - mais tous les pointeurs seront désormais définitivement en 64 bits où ils étaient 32.
Rup
5

Je choisis des installations 32 bits sur 64 bits pour les systèmes avec moins de 4 Go de RAM.

64 bits utilise plus de mémoire, en raison de la nature de ses pointeurs, cela varie entre environ 10 et 50 mégaoctets supplémentaires pour une installation LAMP vanilla.

Sur un système avec un ram limité, par exemple 256meg, cela peut être un gros morceau.

Techniquement, avec PAE, la même chose s'applique jusqu'à 64 Go, mais l'espace adressable pour les applications est toujours limité à 4 Go dans tous les cas. Par conséquent, avec tout ce qui dépasse 4 Go, 64 bits est recommandé d'utiliser les gains de performances, notamment ceux associés à la surcharge de PAE.

En bref: <4gig = 32bit | > 4gig = 64bit.

tomwof
la source
3

Si le fournisseur a installé Debian 5 64 bits, je vous recommande de rester avec cette version.

La différence entre 64 bits et 32 ​​bits n'est pas seulement dans le gestionnaire de mémoire.

angelcervera
la source
2

À l'exception de quelques applications de calcul des nombres qui s'exécutent plus rapidement, le seul avantage d'un système 64 bits est que vous pouvez gérer plus de 4 Go de mémoire. Étant donné qu'une partie de l'espace d'adressage est réservée au noyau, un processus n'obtient qu'environ 2 Go ou 3 Go d'espace d'adressage (ou plus ou moins, selon la configuration du noyau). Pour un cas d'utilisation de base de données et de serveur Web, vous ne prévoyez pas d'échanger beaucoup et vous n'allez pas faire beaucoup de calculs. Ainsi, avec seulement 750 Mo de RAM, vous ne verrez aucun avantage à utiliser un système 64 bits.

La taille du code est à peu près la même entre le code i386 (32 bits) et amd64 (64 bits). La mémoire de données utilisée par le programme 64 bits est un peu plus grande; combien plus grand dépend de l'application. Je m'attendrais à voir une différence notable, mais pas grande pour votre cas d'utilisation.

Étant donné qu'il y a un petit coût et aucun avantage à utiliser 64 bits, je vous recommande d'utiliser un système 32 bits, si ce n'est pas trop difficile à obtenir.

Gilles 'SO- arrête d'être méchant'
la source