Mam serwer VPS Debiana, a dostawca zainstalował 64-bitową wersję Debiana 5. Czy powinienem poprosić o instalację 32-bitową, biorąc pod uwagę, że mam tylko 750 MB pamięci RAM i słyszałem, że zmienne zajmują więcej pamięci RAM w systemach 64-bitowych?
Mam serwer VPS Debiana, a dostawca zainstalował 64-bitową wersję Debiana 5. Czy powinienem poprosić o instalację 32-bitową, biorąc pod uwagę, że mam tylko 750 MB pamięci RAM i słyszałem, że zmienne zajmują więcej pamięci RAM w systemach 64-bitowych?
Odpowiedzi:
Krótka odpowiedź :
Zmienne nie zajmują dwukrotnie miejsca w oprogramowaniu 64-bitowym w porównaniu z oprogramowaniem 32-bitowym. Potencjalne zwiększenie pamięci po przejściu na 32-bitowy system operacyjny nie będzie warte wysiłku.
Długa odpowiedź :
Liczby mogą być większe tak, ale to nie znaczy, że będą. Dotyczy to również liczb, a nie ciągów, a ciągi są (ogólnie) tym, które zużywają najwięcej pamięci w aplikacji.
Ponadto wiele aplikacji wyraźnie określa rozmiar liczby, z którą chcą pracować, ponieważ w językach takich jak C int
może mieć dowolny rozmiar, w tym mniejszy niż 32-bitowy. I jeszcze dalej, na moim 64-bitowym komputerze z systemem Linux, w C int
jest 32-bitowy. Więc musisz jawnie poprosić long long
o 64-bitowy numer.
Zasadniczo aplikacje nie będą zużywać więcej pamięci tylko dlatego, że zostały skompilowane dla wersji 64-bitowej.
EDYCJA :
W odpowiedzi na twierdzenie Gillesa, że 64-bitowy Firefox używa dwa razy więcej pamięci, poszedłem i porównałem 32-bitowego i 64-bitowego Firefoksa w moim systemie.
Przetestowałem, uruchamiając 5 kart otwartych na stronie http://acid3.acidtests.org/ i wykonałem test 3 razy (raz w wersji 32-bitowej, raz w wersji 64-bitowej, a następnie powtórz dwa razy). Wybrałem tę witrynę, ponieważ jest ona bardzo intensywna w JavaScript i wykorzystuje statyczną treść (każde renderowanie strony zapewni te same dane).
W ostatnim biegu:
Wersja 32-bitowa: 173,244kb rss / 918,348kb virt
64-bit: 184,588 kb rss / 966,624kb virt
Mógłbym przeprowadzić bardziej rozbudowane testy tak, ale myślę, że to pokazuje wystarczająco dobrze, że różnica wielkości między nimi jest znikoma.
Wybieram 32-bitowe niż 64-bitowe instalacje dla systemów z mniej niż 4 gramami pamięci RAM.
64-bitowy Zużywa więcej pamięci, ze względu na charakter jego wskaźników, waha się między około 10 a 50 megabajtami dodatkowymi dla instalacji waniliowej LAMPY.
W systemie z ograniczonym ram, na przykład 256 meg, może to być spory kawałek.
Technicznie rzecz biorąc, w przypadku PAE to samo dotyczy 64 gig, jednak przestrzeń adresowalna dla aplikacji jest nadal ograniczona do 4 gig. Dlatego w przypadku elementów większych niż 4 gig zaleca się użycie 64-bitów, aby wykorzystać wzrost wydajności, zwłaszcza te związane z narzutem PAE.
W skrócie: <4gig = 32bit | > 4 gig = 64 bity.
Jeśli dostawca zainstalował 64-bitowy Debian 5, polecam pozostać przy tej wersji.
Różnice między 64-bitowymi a 32-bitowymi dotyczą nie tylko menedżera pamięci.
Z wyjątkiem kilku aplikacji, które działają szybko, jedyną zaletą 64-bitowego systemu jest to, że można obsłużyć ponad 4 GB pamięci. Ponieważ część przestrzeni adresowej jest zarezerwowana dla jądra, proces otrzymuje jedynie około 2 GB lub 3 GB przestrzeni adresowej (lub więcej, lub mniej, w zależności od konfiguracji jądra). W przypadku użycia bazy danych i serwera WWW nie planujesz zamiany za dużo i nie zamierzasz robić zbyt wielu operacji na liczbach. Tak więc, mając zaledwie 750 MB pamięci RAM, nie zobaczysz żadnych korzyści z używania systemu 64-bitowego.
Rozmiar kodu jest mniej więcej taki sam między kodem i386 (32-bit) a amd64 (64-bit). Pamięć danych wykorzystywana przez program 64-bitowy jest nieco większa; o ile większy zależy od zastosowania. Spodziewam się zauważalnej, ale niezbyt dużej różnicy dla twojego przypadku użycia.
Biorąc pod uwagę, że korzystanie z 64 bitów jest trochę kosztowne i nie ma żadnych korzyści, zalecamy używanie systemu 32-bitowego, jeśli nie jest to zbyt trudne.