Czy jest jakaś korzyść z posiadania ponad 16 GB pamięci RAM na maszynie programisty Windows?

8

Zakładając maszynę (Dual Quad Core Xeon (2,26 GHz) z 24 GB pamięci RAM) z systemem Windows Server 2008 i funkcją Hyper-V. Ile maszyn wirtualnych mogę oczekiwać w tym samym czasie z dobrą wydajnością?

Czy to przesada? Czy naprawdę możesz mieć za dużo pamięci RAM?

Zakładając 2 GB na maszynę wirtualną. To około 16 GB dla maszyn wirtualnych, a pozostało 8 GB dla głównego systemu operacyjnego i funkcji Hyper-V.

Czy to brzmi dobrze?


Edytować:

Starałem się, aby pytanie brzmiało mniej niż przechwalanie się. Nigdy nie było moją intencją. Trudno jest napisać pytanie.

Paweł
źródło
1
Po prostu ciekawostki ... Co robisz? A jak to jest naprawdę związane z programowaniem ?!
Miky Dinescu
doode! 16 GB pamięci RAM z 8 maszynami wirtualnymi na stacji roboczej?
Byron Whitlock
To sprawia, że ​​źle się czuję na moim słabym laptopie 512 MB.
Zifre
4
Brzmi bardziej jak wyprawa Ego niż pytanie dewelopera ... w każdym razie jestem zazdrosna :)
Robert Gould
1
Wiem, że to tak brzmi, ale naprawdę jestem ciekawa. To nie jest podróż ego. Gdyby tak było, dałbym pełną specyfikację. Poważnie podchodzę do tego pytania. To moja pierwsza 64-bitowa maszyna, a najwięcej pamięci RAM, jaką kiedykolwiek miałem, to 4 GB, więc chcę wiedzieć, czy coś powyżej 16 GB to przesada. Pamiętam, co zostało powiedziane około 640k. :)

Odpowiedzi:

7

„Chcę uruchomić jednocześnie około 8 maszyn wirtualnych za pomocą funkcji Hyper-V”.

Dlaczego, u licha, chcesz robić coś takiego?

Ponieważ jest mało prawdopodobne, abyś był w stanie załadować WSZYSTKIE 8 jednocześnie podczas programowania (z wyjątkiem, być może, krótkiego testu obciążenia), prawdopodobnie możesz uruchomić wszystkie 8 VM w 2 Gb i nadal dobrze wykorzystywać wszystkie te rdzenie.

S.Lott
źródło
Dla scenariuszy testowania wielowarstwowego z SQL Server, serwerem WWW i komputerami klienckimi.
3
8VM jest zdecydowanie zbyt skomplikowane, by można go było testować z użyciem prostego SQL Servera, serwera WWW.
S.Lott
8 to dużo - jeśli tylko 3 lub 4 byłyby wykonywane w tym samym czasie, sugerowałbym zamiast tego pisanie kodu do pracy z API VMWare - abyś mógł uruchomić / zatrzymać grupę maszyn w zależności od tego, jakie testy zamierzasz wykonać.
Bittercoder
Czy nie jest to właściwe w tym przypadku, nie ma sensu - istnieje wiele powodów, aby używać więcej niż 16 GB pamięci RAM na komputerze z systemem Windows, jako takie jest to dobre ogólne pytanie programistyczne.
Justicle
Nie rozumiem, dlaczego 8 to za dużo. Jeśli chcesz przetestować klaster, przetestować system rozproszony, przetestować system wielopoziomowy, dlaczego nie 8?
nos
4

Mam kilka maszyn towarowych z systemem VMware, których używamy do testowania, ciągłej integracji itp.

Maszyny te mają pojedynczy czterordzeniowy procesor i 16 GB pamięci RAM każdy - w naszym obecnym ustawieniu zauważyliśmy, że:

  • Przede wszystkim jesteśmy związani z I / O, z drugim - procesor, a pamięć nie jest problemem.
  • Używanie iSCSI i OpenFiler do hostowania wirtualnych dysków twardych na oddzielnym dedykowanym serwerze plików za pośrednictwem podwójnego gigabitowego Ethernetu pomogło obniżyć koszty i poprawić wydajność w porównaniu z dyskami lokalnymi.
  • 16 GB pamięci jest niewykorzystane na każdym komputerze, przy czym większość instancji jest przydzielona tylko między 512 MB a 2 GB pamięci RAM, a system operacyjny ma 5 lub 6 GB wolnego miejsca.
  • Za cenę jednej dwurdzeniowej maszyny Xeon z 24 GB pamięci RAM można kupić 2 lub więcej prawdopodobnych 4+ maszyn towarowych, każda z 16 GB pamięci RAM i jednym czterordzeniowym procesorem (unikanie FBDIMM może zaoszczędzić dużo gotówki) - zwłaszcza, że ​​redundancja nie stanowi takiego problemu w przypadku maszyny testowej / programistycznej.
  • Podczas testowania złożonych aplikacji / środowisk często pomaga mieć różne maszyny wirtualne w różnych środowiskach fizycznych, tak aby uzyskać realistyczny poziom opóźnienia sieci między różnymi usługami.

Jeśli chodzi o wykorzystanie swojego sprzętu do programowania - kluczową kwestią dla mnie będą wejścia / wyjścia - jeśli używasz tylu maszyn wirtualnych, zobaczysz negatywny wpływ na czas dostępu do dysku podczas programowania, co spowolni kompilację itp. bądź skłonny do przeniesienia jak największej liczby maszyn wirtualnych na osobne pudełko i pozostaw maszynę programistą bez obciążenia, aby kompilacja i inne zadania związane z programistami błyskawicznie się rozjaśniały.

Wpis na blogu o mojej początkowej konfiguracji z zeszłego roku.

Bittercoder
źródło
3

To zależy od używanej wersji systemu Windows. Oto kilka informacji: http://msdn.microsoft.com/en-us/library/aa366778.aspx

64-bitowy system Windows Vista Business i nowszy oraz 64-bitowy system Windows 2008 Server Standard i nowsze wersje powinny mieć możliwość adresowania pamięci RAM.

Justicle
źródło
Planowałem używać systemu Windows Server 2008 64
3

W 64-bitowym systemie Windows zajęcie się tak dużą ilością pamięci nie powinno stanowić problemu. Myślę, że Twoim największym zmartwieniem byłoby wejście / wyjście, przy tak dużej liczbie maszyn wirtualnych działających jednocześnie. Sugeruję inwestowanie w dyski SAS przy najszybszych dostępnych RPM, aby skutecznie obsługiwać tak wiele maszyn wirtualnych.

Steve Wranovsky
źródło
Zgoda. Wybierz grupę 15k dysków SCSI lub dysków flash, w zależności od potrzeb.
Joey Robert
3

Miałem podobne pytanie i zamiast debatować teoretycznie, zdecydowałem się kupić z pomysłem, że w razie potrzeby zastąpię go / zaktualizuję. Skończyłem z Core i7 920 z 12 GB pamięci RAM, 2 dyskami SSD Intel 80 GB (RAID 0), dwoma dyskami twardymi SATA 1 TB (RAID 1) i dyskiem SATA o pojemności 1 TB.

Rzuciłem na Windows Server 2008 x64 i hostowałem kilka maszyn wirtualnych na moich dyskach SSD. Bardzo, bardzo szybkie odpowiedzi. (Mam pewne doświadczenie z maszynami wirtualnymi i wiem, że dyskowe operacje we / wy pochłonęłyby mnie hostowaniem środowiska programistycznego na maszynie wirtualnej, szczególnie podczas dodawania programu SQL Server do tych samych wrzecion.

Naprawdę podobała mi się ta konfiguracja, ale potem pojawił się plac zabaw VM (Dell 1950 z 32 GB pamięci RAM i sprytnym małym SAN). Przerzuciłem te maszyny wirtualne wraz z kilkoma innymi i załadowałem system Windows 7 na moje dyski SSD. (Czułem, że mogę bawić się z moim systemem, ponieważ hostowałem teraz niektóre maszyny wirtualne niezależnie od mojej nowej stacji roboczej).

Najważniejszą rzeczą, którą zauważyłem, było to, jak ładniej było rozwijać się na maszynie innej niż VM. Nie tyle szybkość, ile efekty wizualne, antyaliasing czcionek itp. Dyski SSD naprawdę sprawiły, że operacje we / wy były bez znaczenia, ale sprawiają, że wszystko wydaje się natychmiastowe. (Również Windows 7 jest słodki.)

Wiem, że będę musiał go odbudować, gdy pojawi się RTM, ale mam maszyny wirtualne, w których mogę pracować podczas przebudowy. Będę musiał użyć VPC zamiast Hyper-V do budowania maszyn wirtualnych, które muszę upewnić się, że nikt inny się z nimi nie pomylił, ale myślę, że to rozsądny kompromis.

Krótko mówiąc, powtórzę innym, którzy twierdzą, że hostują maszyny wirtualne na oddzielnym serwerze, ale chciałbym dodać, że dyski SSD Intela są bardzo szybkie. oddzielne maszyny zapewniają większą elastyczność. Twoje dyski brzmią wystarczająco szybko do testowania, ale do prac programistycznych natychmiastowe bicie szybko.


źródło
1

Ponieważ każda maszyna wirtualna „posiada” własną pamięć w Hyper-V, liczba maszyn wirtualnych, które można aktywnie hostować, jest ograniczona dostępną pamięcią RAM. Tak naprawdę nie może mieć zbyt wiele.

Oczywiście największą prędkością szyjki butelki na urządzeniu deweloperskim jest dysk twardy. Z dodatkowym ramem możesz ustawić napęd RAM, który może mieć ogromną korzyść z wydajności.

Paul Alexander
źródło
Tak, bez wątpienia nie wspomniałem o dyskach, ponieważ chciałem, aby pytanie skoncentrowało się tylko na pamięci. Pamięć DDR3 nie jest tania, a jeśli nie potrzebuję 24 GB, a 16 GB będzie w porządku, przejdę do specyfikacji. Ta maszyna będzie miała 4 dyski 15k SAS, więc myślę, że są one wystarczająco szybkie.
1

Nie będziesz mieć problemu z rozwiązaniem tej pamięci RAM, możesz być w stanie uciec z 20 GB, ale w tym momencie możesz równie dobrze uzyskać dodatkowe 4 GB. Dlaczego robisz to na komputerze programisty? Jeśli nie jesteś show jednoosobowym, powinien istnieć centralny serwer, który obsługuje takie rzeczy.

Jared
źródło
To jest test. Zamierzam ocenić tę konfigurację, aby nasz zespół kontroli jakości przeprowadził testy wielowarstwowe. Po upływie okresu ewaluacji prawdopodobnie otrzymamy stelaż o podobnych specyfikacjach. Ponadto jest to dla mnie wymówka, aby wypróbować i grać z maszynami wirtualnymi, co zwykle nie jest.
1

Jeśli twój scenariusz dotyczy serwerów + klientów, konfiguracja wielu urządzeń byłaby lepsza do symulacji i tańsza. Maszyny wirtualne w rzeczywistości nie są takie same jak natywne systemy operacyjne, wątki i profilowanie są zepsute, więc będziesz zupełnie poza celem, a co gorsza nie będzie w stanie odpowiednio profilować.

Moje 2 centy

Robert Gould
źródło
1
Opóźnienie sieci może również być czynnikiem - choć myślę, że testowanie serwera na maszynie wirtualnej jest często cenne w dzisiejszych czasach, ponieważ w świecie korporacyjnym wirtualizuje się tak dużo infrastruktury, aby obniżyć koszty ...
Bittercoder
Dobra uwaga, jeśli serwer działa na czyimś sprzęcie, w dzisiejszych czasach to i tak wirtualizacja
Robert Gould
1

Robert,

Jeśli zamierzasz używać jednocześnie 8 maszyn wirtualnych (dla programistów lub w inny sposób), zdecydowanie polecam zapoznanie się z opcjami wirtualizacji serwerów oferowanymi przez VMWare. Ogólnie rzecz biorąc, technologia wirtualizacji serwerów jest znacznie bardziej zoptymalizowana i wydajniejsza w wykorzystaniu zasobów fizycznych niż jej odpowiednik na stacji roboczej.

Miałem okazję pracować z VMWare Infrastructure 3 (która jest nomenklaturą dla rodziny produktów / technologii wirtualizacji serwerów VMWare) i muszę powiedzieć, że jestem pod wrażeniem. Wersja serwerowa jest wyjątkowo wydajna w porównaniu z wersją stacji roboczej i oferuje niesamowitą elastyczność.

Nie mam doświadczenia z Hyper-V, ale wiele osób, które go używały, mówi o nim bardzo dobrze. Uważam jednak VMWare za lepszą alternatywę dla prostego faktu, że pozwala ona tworzyć maszyny wirtualne, które działają na różnych systemach operacyjnych na tym samym hoście fizycznym, czego nie może zrobić Hyper-V (AFAIK)

Jeśli chodzi o pamięć RAM, ograniczenia infrastruktury VMWare 3 wykraczają daleko poza 24 Gb i pozwalają na zapewnienie dostępnej pamięci, a nawet każdego rdzenia, bez względu na to, jak chcesz, między gośćmi - o ile goście go obsługują.

Jeśli chcesz dowiedzieć się o VMWare Infrastructure 3, bardzo polecam tę książkę, ponieważ zawiera ona dyskusje na temat architektury serwera VMWAre ESX oraz rozważania techniczne, których prawie nie znajdziesz nigdzie indziej.

Mam nadzieję, że okaże się to przydatne, chociaż nie jest to bezpośrednia odpowiedź na twoje pytanie i usprawiedliwisz mój komentarz (24 Gb na maszynę deweloperską wydaje się trochę niezwykła .. przynajmniej na chwilę)

Miky Dinescu
źródło
1
Dzięki za link. Ponieważ będę miał do czynienia tylko z systemem operacyjnym Microsoft, zamierzam wypróbować Hyper-V, ale będę o tym pamiętać, jeśli będę musiał zbadać coś więcej. Zgadzam się, że 24 GB wydaje się ekstremalne, ale kosztuje tylko 500 USD - 750 USD (dokładnie pamiętam) więcej niż 12 GB. Za kilka lat większość komentarzy na to pytanie będzie dziwna! ;-)
Zgadzam się na temat pamięci RAM. Jednak jeśli chodzi o Hyper-V, myślę, że w tej chwili działa tylko z Win 2K8, aw naszym scenariuszu mieliśmy kilka narzędzi, które były kompatybilne tylko z 2K3. Może później podzielisz się swoimi odkryciami!
Miky Dinescu
0

Korzystamy z Hyper V i hostujemy wystąpienia Server 2003 i XP na tym samym komputerze.

--- to miała być odpowiedź użytkownika, który powiedział, że nie można hostować różnych systemów operacyjnych na tej samej maszynie w Hyper V. W każdym razie tak to czytam.


źródło