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.
Odpowiedzi:
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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 .
źródło
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.
źródło
Niektórzy ludzie myślą, że dodanie pamięci RAM to magiczna poprawka. Pomaga tylko, jeśli RAM jest wąskim gardłem.
źródło
Więcej pamięci RAM = więcej maszyn wirtualnych.
Więc przypuszczam, że więcej pamięci RAM = więcej serwerów !!
źródło