Więcej pamięci RAM niż więcej serwerów


9

Niedawno zapytano mnie „Czy wiesz, kiedy zdecydować się na więcej pamięci RAM lub więcej serwerów?” (w kontekście skalowania aplikacji do eksploracji danych).

Nie miałem pojęcia, więc jakie są sposoby na podjęcie decyzji? Mam bardzo małą wiedzę na temat architektury i skalowania (moje rozumienie pamięci komputera i tego, co robi serwer, ogranicza się do podstaw wysokiego poziomu), więc mile widziane są również porady na temat uzyskiwania więcej informacji na temat tych rzeczy.


3
Czy mogę mieć oba?
Dirk Eddelbuettel

1
Więcej pamięci RAM w każdym przypadku, o którym myślę ... (z wyjątkiem tego, że serwer jest maksymalnie RAM)
jcolebrand

3
Jak w większości przypadków sysadmin. Najlepszą odpowiedzią, jeśli to możliwe, jest zebranie danych w systemie deweloperskim lub produkcyjnym, a następnie podjęcie decyzji na podstawie zebranych danych.
Zoredache,

Pytanie, które zadajesz, to czy chcesz zwiększyć czy zmniejszyć.
micmcg

większość oprogramowania do eksploracji danych jest przeznaczona dla jednego komputera. dlatego więcej pamięci RAM. Jeśli używasz Mahouta lub równoległego R, lub co masz, to więcej serwerów. Wypożyczyłbym serwery Amazon AWS, aby eksperymentować w celu znalezienia najlepszej kombinacji serwerów / ram.
Neil McGuigan,

Odpowiedzi:


8

„Czy wiesz, kiedy zdecydować się na więcej pamięci RAM lub więcej serwerów?” (w kontekście skalowania aplikacji do eksploracji danych).

Odpowiedź brzmi: jak tylko podasz mi dane dotyczące danego serwera, powiem ci, które (lub jeśli w ogóle warto je dodać). Ten rodzaj strojenia nie jest voodoo (jeśli używasz aplikacji bez oprzyrządowania i systemów operacyjnych serwera bez oprzyrządowania - to tak, to voodoo) to nauka. Zmierz aplikację i serwer. W skrócie, korzystając z wskaźników monitorowania, dowiedz się, gdzie jest wąskie gardło wydajności i dodaj go więcej.


Nie, wciąż jest to voodoo, ale jesteś doktorem-czarownicami! Co więcej, w jaki sposób neofita wykorzystuje tę odpowiedź, aby rozwiązać swój problem? Jakie podstawowe wskaźniki powinien zbadać i skąd ma wiedzieć, jakie liczby są znaczące? Zdobądź mój punkt ...
tomjedrz

Ten rodzaj przypomina mi stary żart z balonu. officediversions.com/discover/modules/wfsection/…
tomjedrz

Odpowiedź, które podstawowe wskaźniki zależą od systemu. Pytanie jest tak ogólne, że nie można udzielić bardziej szczegółowej odpowiedzi poza podstawami (procesor, pamięć, dysk itp. I monitory aplikacji). Biorąc pod uwagę hipotetycznego neofity, po prostu nie mogą uzyskać odpowiedzi na ten problem, ponieważ najpierw trzeba wiedzieć, jak monitorować dany serwer (serwery) - i to byłoby zupełnie osobne pytanie
Jim B

5

Ogólnie rzecz biorąc, poprawa wydajności serwera / aplikacji jest zasadniczo bardzo dobra (lub przynajmniej metodą prób i błędów).

Ogólną zasadą dla konkretnego zadanego pytania jest najpierw zwiększenie pamięci, dopóki nie będzie można jej zwiększyć LUB, dopóki więcej pamięci nie poprawi już wydajności. Przy względnie taniej pamięci może być prostsze, aby po prostu zwiększyć pamięć. Ponadto, jeśli aplikacja jest obciążona dyskami, aktualizacja do szybkich dysków lub wysokowydajnych kontrolerów może mieć znaczenie.

Jednak bardzo ogólny charakter tego pytania prowadzi mnie do wniosku, że nie było innych prób poprawy wydajności. Zgadzam się, że sprzęt jest tani, więc nawet rzucenie większej liczby serwerów w problem jest wystarczająco łatwe do osiągnięcia. Ale upewniłbym się również, że zostały wykonane inne możliwości, szczególnie dostrajanie systemu operacyjnego i bazy danych. Czasami drobne poprawki w bazie danych, systemie operacyjnym, a nawet konfiguracji aplikacji mogą znacznie poprawić wydajność.

Szukaj w tej witrynie z określonym systemem operacyjnym, bazą danych i aplikacją, a być może zdobędziesz złoto.


5

Jako architekt korporacyjny zajmowałem się tym problemem prawie codziennie. Skalowanie w pionie czy w poziomie?

Jakie są twoje potrzeby

Czy potrzebujesz obsługi większej liczby użytkowników? Czy potrzebujesz poprawić szybkość usługi? Potrzebujesz obu? Czy potrzebujesz wysokiej dostępności 99,9999 lub czy użytkownicy mogą przestać?

Aby rozpocząć, musisz przechwycić wskaźniki wydajności w bieżącym systemie. Liczba aktywnych użytkowników, obciążenie pamięci RAM i procesora, dyskowe operacje we / wy - dowiedz się, gdzie są wąskie gardła.

Możliwe rozwiązania oparte na problemach: Zacznij od optymalizacji bieżących zasobów. Jeśli aplikacja jest sterowana przez bazę danych, zoptymalizuj bazę danych za pomocą zapytań i pamięci podręcznych wątków, indeksów itp. Jeśli współużytkujesz serwer z innymi aplikacjami, przejdź na serwer dedykowany. (Spójrz na wirtualizację mniej aktywnych / krytycznych aplikacji, aby zwolnić dedykowane zasoby).

obecne maszyny mają pełną pojemność, pamięć RAM i procesor są mocno obciążone, dyski we / wy o dużej pojemności - oblicz koszt dodania pamięci RAM, czy możesz przejść na szybsze dyski we / wy (RAID, SATA zamiast ATA)?

Jeśli potrzebujesz wysokiej dostępności, prawdopodobnie i tak musisz dodać sprzęt i wyrównać obciążenie.

Czy taniej jest dodawać aktualizacje sprzętu lub dodawać nowe serwery? Który pasuje do celów dalekiego zasięgu i wzrostu?

Kiedy najlepszy dział IT wydaje pieniądze? Czy masz już środki, czy chcesz przenieść wydatki na kolejny kwartał / rok? Jeśli problemem są fundusze, zoptymalizuj je teraz lub wypróbuj uwolnienie sprzętu z innych aplikacji, aby dodać tymczasowe rozwiązanie równoważące obciążenie.

Nie bój się odkrywać licznych rozwiązań. Dostawcy mogą chcieć kupić zrównoważone obciążenie, koncentrujące się na pamięci masowej SAN rozwiązanie, w którym nowy serwer z iSCSI RAID 10 na pokładzie będzie działał za 10 procent kosztów.

Jeśli Twój procesor jest nadal mocno obciążony po optymalizacji, musisz dodać / wymienić sprzęt. Jeśli dyskowe operacje wejścia / wyjścia są wąskim gardłem i nie można zaktualizować technologii pamięci, należy wymienić sprzęt lub dodać pamięć sieciową / podłączone urządzenia pamięci masowej.

Przechwytywanie wskaźników wydajności. Zoptymalizuj, ulepsz i ponownie przechwyć dane. Dokumentuj wzrosty / spadki wydajności, abyś mógł przekazać raport, który dokumentuje ile wydałeś i jaki wzrost wydajności przyniósł. Są to rodzaje możliwych historii sukcesu, które sprawiają, że administratorzy stają się architektami, architekci menedżerami projektów, a menedżerowie wyższego szczebla - jeśli są odpowiednio wykonane.


2

Czy przywołujesz? Czy zamierzasz używać pamięci RAM do buforowania dysku? Czy jesteś związany procesorem z wolną pamięcią RAM?

Jeśli stronicujesz i / lub możesz użyć pamięci RAM do buforowania, zdobądź więcej pamięci RAM. Jeśli nie napotykasz presji pamięci RAM, to jest coś innego.


2

RAM jest tani. Zawsze powinieneś zwiększać ten poziom do punktu, w którym masz najbardziej ekonomiczną ilość (np. Moduły DIMM 4 gb są zbyt drogie, więc nie zawracałbym sobie nimi głowy).

Następnie zbadaj skalowanie na boki (więcej serwerów). Zastanów się nad tanim sprzętem konsumenckim w porównaniu z drogimi częściami serwera, ale spodziewaj się awarii i buduj szacunki pracy awaryjnej w swojej całkowitej mocy obliczeniowej.

Zasadniczo, zrób Google .


1

Jakiego systemu operacyjnego używasz, ile pamięci RAM obsługuje i ile masz pamięci RAM, należy również zadać pytania. Jeśli masz limit 32-bitowego systemu operacyjnego, zakup większej ilości pamięci RAM nic ci nie da. Jeśli używasz systemu Windows, niektóre jednostki SKU są ograniczone do pewnych ilości pamięci RAM, które nie są dokładnie związane z limitem 32-bitowym.


1

Niektórzy ludzie myślą, że dodanie pamięci RAM to magiczna poprawka. Pomaga tylko, jeśli RAM jest wąskim gardłem.


To nie jest „magia”, ale jest stosunkowo tania i przez większość czasu stanowi dobrą pierwszą próbę.
tomjedrz

1
@ tomjedrz: Dobra pierwsza próba, z wyjątkiem sytuacji, gdy nie jest. To naprawdę bardzo proste - czy wykonujemy „administrację systemami jako naukę” i dodajemy pamięć RAM do maszyny po przeprowadzeniu testów i monitorowania zasobów, które wskazują, że tego potrzebuje, czy też wykonujemy „administrację systemem jako kult religijny” i dodawanie Pamięć RAM do maszyny, ponieważ to, co mówią nam religijne zwoje, jest poprawną modlitwą za serwer, który jest nieco powolny? Osobiście wolę podejście naukowe.
Rob Moir,

0

Więcej pamięci RAM = więcej maszyn wirtualnych.

Więc przypuszczam, że więcej pamięci RAM = więcej serwerów !!


1
więcej maszyny wirtualnej wymaga więcej procesorów, RAM jest tylko jednym z wielu zasobów do zabawy.
Tony Roth,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.