2009-02-11 19 views
5

W wielu architekturach systemów Enterprise konieczne staje się skalowanie sprzętu zgodnie z wymaganiami dotyczącymi obciążenia współbieżnego. Głównie dostawcy produktów dostarczają własne arkusze wymiarowania sprzętu, w których po prostu podłączasz dane, a to wyrzuci szczegóły dotyczące liczby serwerów, wymaganej pamięci RAM i tak dalej. Jednakże, gdy system jest opracowywany przy użyciu komponentów oprogramowania open source, takie wytyczne nie są łatwo dostępne.Rozmiary sprzętu - zasady Thumb

Potrzebuję przeprowadzić wymiarowanie sprzętu w systemie. System jest skalowalny w poziomie, dzięki czemu rosnący ruch może zostać uwzględniony poprzez dodanie większej liczby węzłów. Na początek system będzie miał dwa węzły wyrównywania obciążenia HAProxy. Za równoważnikami obciążenia znajdują się serwery WWW obsługujące strony HTML i javascript. Jest więcej węzłów hostujących serwery dla RESTful usług internetowych. Na zapleczu znajduje się kilka węzłów Cassandra. Mamy przybliżony obraz ruchu lub jednoczesnych użytkowników.

Jakie powinno być moje podejście do rozmiaru sprzętu? Czy są jakieś ogólne wytyczne?

Odpowiedz

6

Jest to prawdopodobnie jedno z najtrudniejszych pytań do odpowiedzi. Z zainteresowaniem przyglądałem się temu wątkowi, aby zobaczyć, co inni sądzili.

Należy odpowiedzieć na pytanie o platformę sprzętową, system operacyjny, serwer aplikacji, serwer bazy danych itp., Na którym działa produkt, a także o względną złożoność produktu. Witryna obsługująca statyczny HTML będzie skalowad dla wielu użytkowników więcej niż system OLTP.

Znajomość wrodzonych możliwości docelowej platformy ma kluczowe znaczenie. Wiedząc, że platforma ASP.NET obsługuje 12 równoczesnych uruchomień wątków/procesorów (domyślna konfiguracja), można użyć buforowania wyjściowego w celu znacznego zmniejszenia współbieżności, lub ponad 3000 żądań/s wymaga gigabitowego Ethernetu do serwera bazy danych itp. Może pomóc w zaplanowaniu prawidłowego planowania , wiesz, jakie dźwignie musisz ciągnąć, itp.

Arkusze rozmiarów sprzętu sprzedawców odzwierciedlają znaczny wysiłek związany z wydajnością i testowaniem wydajności ich produktu. Może to być trudne do sprzedania w aplikacjach, w których pracujesz w domu lub w ramach rozwoju not-for-profit.

Podsumowując, twoim celem powinno być rozpoczęcie tworzenia POCs z bardziej złożonych obszarów produktu, a następnie rozpoczęcie inwestowania w bieżące wyniki i iteracje planowania wydajności.

Jeśli nie zostanie to zrobione, najprawdopodobniej wystąpi awaria - niewykonanie, niepowodzenie w planowaniu cPacity lub awaria firmy - użytkownicy nigdy nie przybyli.

Żałuję, że nie miałem lepszej odpowiedzi - sam stoję przed tym samym wyzwaniem.

0

Jeśli masz luksus polegający na tym, że nie musisz wysyłać do wszystkich 1000 użytkowników pierwszego dnia, wtedy byłbym skłonny użyć wirtualizacji, aby pomóc ci rozwiązać ten problem. Najpierw zbudowałem serwery na gołym metalu i sprawdziłem, czy działają tak, jak tego potrzebujesz. Następnie należy użyć dowolnego konwertera P2V oprogramowania VM, które lubisz, aby konwertować z obrazu dysku fizycznego na wirtualny. Następnie usunę oryginalne dyski serwera i przechowię je bezpiecznie, włożę kilka nowych do środka, zainstaluję wybrany hiperwizor, dodam przekonwertowaną maszynę wirtualną, uruchomię ją, dodam narzędzia do obsługi VM/OS i zobaczę, jak sobie poradzisz . Jeśli twój serwer działa, to to, co sobie dałeś, to przenośność. Możesz zacząć od setki użytkowników, zmierzyć obciążenie, ekstrapolować i dokonać pewnych założeń. Następnie dodaj więcej użytkowników, sprawdź swoje założenia i tak dalej. Jeśli zdobędziesz 1000 użytkowników i pozostało ci dużo miejsca, to świetnie, możesz pozostać przy wirtualnym środowisku (plusy: dobre opcje DR, przenośność, zalety: tracisz trochę wydajności) lub wrócić do czystej konstrukcji wiedząc, że obsłużyć pracę. Jeśli twoja cyna się nagrzewa, możesz albo przenieść maszynę VM na większy/lepszy/szybszy sprzęt bardzo łatwo, albo skopiować maszynę wirtualną do innego fizycznego hosta VM i klastra w ten sposób.

Wiem, że nie odpowiada bezpośrednio na twoje pytania, ale nie jestem pewien, czy są na to reguły, ponieważ istnieje ogromna fluktuacja obciążenia na użytkownika w oparciu o tak wiele czynników.

Jeśli masz mniej więcej miesiąc, zanim zamówisz swoje serwery, możesz rozważyć nowe Xeony oparte na Nehalem - naprawdę warto poczekać.

+0

Dzięki Chopper3. To był całkiem dobry przegląd wykorzystania wirtualizacji do adaptacyjnego budowania wymaganej infrastruktury. Jednak to, czego szukam, to łatwo dostępne dane bazowe dotyczące możliwości obsługi użytkowników, obsługi współbieżności, obciążenia itd dla różnych rodzin procesorów/serwerów. – gnlogic

0

Poniższe punkty mogą pomóc

  • Wybierz miarą Dobór
  • Estimate Obciążenie oszacować CPU
  • Sizing model Przetwarzania Online (aplikacji i serwerów DB) Szacunkowa
  • RAM Rozmiar Oszacowanie twardy Rozmiar dysku
  • Oszacowanie przepustowości sieci
  • Kosztorys nietoperza Przetwarzanie ch Rozmiar Sprawdź
  • sprzętu i oprogramowania o ich przetwarzania