Procesory AMD EPYC Turin mogą być interesujące dla dostawców usług hostingowych, którzy obsługują wiele maszyn wirtualnych lub równoległych żądań internetowych na jednym serwerze. Które Procesor serwera To się zgadza, ale o wyborze nie decyduje sama liczba rdzeni: w porównaniu należy uwzględnić pojemność pamięci RAM, interfejs NVMe, sieć, rezerwę na wypadek awarii oraz licencje na oprogramowanie. Turin określa zaprezentowaną w 2024 r. generację EPYC 9005 jako opartą na architekturach Zen 5 i Zen 5c. Aby dokonać trafnego wyboru, konieczne jest uwzględnienie porównywalnych profili obciążenia oraz pomiarów własnego sprzętu hostingowego.
Jak właściwie ocenić procesor AMD EPYC Turin
AMD EPYC Turin to Generacja EPYC 9005 procesorów serwerowych. Firma AMD zaprezentowała je w październiku 2024 roku jako piątą generację procesorów EPYC; do tej rodziny należą modele z rdzeniami Zen-5 i Zen-5c.
Dla dostawców usług hostingowych Turin nie jest pojedynczym procesorem o jednolitej charakterystyce wydajnościowej. Gama modeli obejmuje od ośmiu do 192 rdzeni na procesor. Wybór odpowiedniego modelu zależy od tego, czy równolegle przetwarzanych jest wiele niezależnych zapytań klientów, czy poszczególne aplikacje wymagają krótkich czasów odpowiedzi, czy też maszyny wirtualne zużywają przede wszystkim dużo pamięci operacyjnej.
Wśród opcji znajduje się również pytanie dotyczące Liczba podstaw: Serwer wyposażony w jeden procesor oferuje inną kombinację mocy obliczeniowej, dostępu do pamięci i możliwości rozbudowy niż platforma z dwoma gniazdami. Nie każdy model jest przeznaczony do obu wariantów; zgodnie z arkuszem danych procesory z przyrostkiem „P” są przeznaczone do systemów z jednym gniazdem.
Wstępny wybór zaczyna się zatem od konkretnego zestawu klientów oraz wymagań dotyczących pamięci RAM, dysków NVMe i sieci. Na przykład intensywnie obciążony serwer VPS wymaga rezerw na potrzeby jednocześnie aktywnych maszyn wirtualnych, podczas gdy serwer bazy danych może dodatkowo reagować na zapotrzebowanie na pamięć oraz operacje wejścia/wyjścia. Planowanie obejmuje również licencje na oprogramowanie oraz zezwolenia producenta serwera.
Sama liczba rdzeni nie pozwala określić, ile istniejących hostów można zastąpić. W tym celu dostawca potrzebuje porównywalnych profili obciążenia i danych pomiarowych dotyczących istniejącego sprzętu hostingowego, a także ustalonej rezerwy na wypadek awarii. Bez tych danych można wprawdzie dokonać wyboru modelu, ale nie da się określić wiarygodnego wskaźnika konsolidacji.
Zrozumieć jądra, chiplety i taktowanie
Turyn stosuje Projekt chipletów: Jednostki obliczeniowe oraz oddzielny układ I/O są połączone za pomocą sieci AMD Infinity Fabric. Układ I/O zapewnia między innymi połączenia z pamięcią operacyjną oraz z urządzeniami wejścia i wyjścia. W praktyce przy projektowaniu serwerów oznacza to, że liczą się nie tylko rdzenie, ale także sposób podłączenia wspólnie wykorzystywanych zasobów.
Zen 5 i Zen 5c różnią się pod względem architektury i organizacji rdzeni. Zen 5c zapewnia najwyższą gęstość rdzeni w tej generacji; nie oznacza to jednak ogólnej hierarchii wydajności. Silnie zrównoleglona kombinacja maszyn wirtualnych oraz aplikacja zawierająca niewiele zadań, w których opóźnienia mają kluczowe znaczenie, mogą sprzyjać różnym modelom.
Procesor EPYC 9965 posiada 192 rdzenie Zen-5c i 384 wątki, natomiast EPYC 9755 – 128 rdzeni Zen-5 i 256 wątków. AMD podaje maksymalną częstotliwość taktowania w trybie Boost wynoszącą do 3,7 GHz dla modelu 9965 i do 4,1 GHz dla modelu 9755. Wartości te wskazują na różne priorytety, ale nie zastępują porównania w ramach własnego profilu obciążenia.
Podany maksymalne wzmocnienie W szczególności nie ma gwarancji stałej częstotliwości taktowania dla wszystkich rdzeni. Częstotliwość osiągana pod obciążeniem zależy między innymi od obciążenia i warunków pracy. Dlatego przy podejmowaniu decyzji dotyczącej hostingu przepustowość i czasy odpowiedzi przy określonym zestawie aplikacji mają większe znaczenie niż pojedyncza wartość szczytowa.
Podwójna liczba wątków wynika z technologii SMT: jeden rdzeń fizyczny udostępnia dwa wątki logiczne. Dzielą one jednak zasoby rdzenia; 384 wątki to ani 384 rdzenie fizyczne, ani automatyczne podwojenie mocy obliczeniowej. To, czy technologia SMT i nadmiarowe przydzielanie zasobów procesora są pomocne, należy sprawdzić na podstawie obciążenia generowanego przez aktywnych w danym momencie klientów.
Pamięć i wejścia/wyjścia ograniczają pojemność
Wiele rdzeni procesora wymaga odpowiedniej konfiguracji pamięci. Według AMD procesor EPYC 9005 obsługuje do dwunastu kanałów pamięci DDR5 na każdy procesor. W przypadku hosta maszyn wirtualnych liczy się nie tylko całkowita pojemność pamięci RAM: również rozmieszczenie modułów i dostępna przepustowość pamięci mają wpływ na to, jak dobrze można obsłużyć jednocześnie aktywne maszyny-goście.
W karcie katalogowej podano dla wymienionych modeli częstotliwość do DDR5-6400 przy jednym modułem DIMM na kanał. Rzeczywista prędkość zależy od konfiguracji sprzętowej i zatwierdzenia platformy. Również podana w karcie katalogowej wartość do 6 TB pamięci DDR5 odnosi się do konfiguracji tam wymienionych, z dwoma modułami DIMM na kanał, i nie stanowi gwarancji dla każdego serwera.
Zastosowanie większej liczby modułów pamięci RAM może być uzasadnione ze względu na wymaganą pojemność, ale zmienia to konfigurację podlegającą testom. Dlatego dostawcy powinni porównać żądaną wielkość modułów i ich konfigurację z listą zatwierdzonych komponentów producenta serwera, zamiast niezależnie od siebie sumować maksymalne wartości pojemności i prędkości podane w karcie katalogowej.
W przypadku dysków NVMe i kart sieciowych należy również uwzględnić Interfejs PCIe ma kluczowe znaczenie. AMD podaje liczbę do 128 linii PCIe 5.0 dla systemów z jednym gniazdem procesora oraz do 160 dla serwerów z dwoma gniazdami. To, ile złączy faktycznie udostępnia konkretna płyta główna, zależy od konstrukcji platformy i sposobu wykorzystania połączeń; maksymalna liczba 2P nie ma automatycznie zastosowania w przypadku hosta 1P.
Podczas konfiguracji warto zatem zwrócić uwagę na wzajemne współdziałanie: większa liczba dysków NVMe może wymagać dodatkowych złączy, a jednocześnie konieczne jest podłączenie szybkich kart sieciowych. CXL 2.0 należy do funkcji platformy, ale nie jest cechą automatycznie dostępną w każdym serwerze. Należy sprawdzić obsługę urządzeń, oprogramowania układowego i systemu operacyjnego dla wybranego systemu.
Porównaj modele Turin w zakresie hostingu
Seria EPYC 9005 oferuje różne profile wydajności: model 9965 stawia na maksymalną gęstość rdzeni, podczas gdy model 9575F dąży do osiągnięcia wyższej częstotliwości. Przy wyborze liczy się nie tylko procesor, ale także połączenie konkretnego modelu, typu gniazda i obciążenia aplikacji. Poniższa tabela przedstawia porównanie czterech modeli na podstawie danych firmy AMD.
| Model | Wariant zen | Jądra / wątki | Poziom podstawowy / maksymalne wzmocnienie | Pamięć podręczna L3 / TDP | Praca w trybie podstawowym |
|---|---|---|---|---|---|
| EPYC 9965 | Zen 5c | 192 / 384 | 2,25 / 3,7 GHz | 384 MB / 500 W | 1P lub 2P |
| EPYC 9755 | Zen 5 | 128 / 256 | 2,7 / 4,1 GHz | 512 MB / 500 W | 1P lub 2P |
| EPYC 9655P | Zen 5 | 96 / 192 | 2,6 / 4,5 GHz | 384 MB / 400 W | tylko 1P |
| EPYC 9575F | Zen 5 | 64 / 128 | 3,3 / 5,0 GHz | 256 MB / 400 W | 1P lub 2P |
Model 9965 oferuje szczególnie dużą liczbę rdzeni fizycznych do wykonywania niezależnych zadań. Może to być interesujące w przypadku silnie zrównoleglonego zestawu maszyn wirtualnych, o ile pamięć i operacje wejścia/wyjścia nadążają za tym obciążeniem. Model 9755 oferuje mniej rdzeni, ale wyższy maksymalny boost i większą całkowitą pamięć podręczną L3. Na podstawie samych tych danych nie można ustalić jednoznacznej hierarchii dla aplikacji hostingowych.
Model 9575F stanowi potencjalną opcję porównawczą, gdy poszczególne etapy pracy wymagają krótkich czasów reakcji. Jego maksymalne wzmocnienie nie oznacza to jednak stałej gwarantowanej częstotliwości taktowania dla wszystkich rdzeni. To, czy jest to bardziej opłacalne w porównaniu z modelem o większej liczbie rdzeni, zależy między innymi od liczby jednoczesnych żądań oraz modelu licencyjnego.
W przypadku modelu 9655P ogranicza to Sufiks „P” kompatybilność gniazda z systemami z jednym gniazdem. W związku z tym model ten nie wchodzi w grę w przypadku serwerów z dwoma gniazdami. Szersze porównanie platform powinno uwzględniać konkretne konfiguracje i pomiary; informacje na ten temat zawiera artykuł dotyczący Wybór platformy: AMD EPYC czy Intel Xeon dalsze wskazówki.
Przypisywanie obciążeń hostingowych do wąskich gardeł
Procesor serwera musi być dostosowany do usług działających jednocześnie. W hostingu współdzielonym generowanych jest wiele niezależnych żądań, w przypadku maszyn wirtualnych całe systemy operacyjne konkurują o zasoby, a bazy danych, w zależności od obciążenia, wrażliwie reagują na dostęp do pamięci lub opóźnienia w pamięci masowej. Poniższy przegląd przekłada te różnice na pytania kontrolne dotyczące projektowania.
| Obciążenie pracą | Wymagania dotyczące procesora | Inne potencjalne wąskie gardła | Wielkości kontrolne |
|---|---|---|---|
| hosting wspólny | Żądania równoległe i krótkie pojedyncze zapytania | Baza danych, pamięć RAM, operacje wejścia/wyjścia pamięci masowej | Przepustowość, rozkład czasów odpowiedzi, wskaźnik błędów |
| Hosting maszyn wirtualnych | Wirtualne procesory działające jednocześnie | Pojemność pamięci RAM, przepustowość pamięci, sieć i pamięć masowa | Wykorzystanie procesora, czasy oczekiwania, czasy odpowiedzi maszyn wirtualnych |
| Bazy danych | Równoległe zapytania i przetwarzanie poszczególnych transakcji | Wykorzystanie pamięci podręcznej, pamięć RAM, przepustowość pamięci i operacje wejścia/wyjścia | Przepustowość transakcji, opóźnienie zapytania, opóźnienie operacji wejścia/wyjścia |
W przypadku hostingu współdzielonego liczba aktywnych jednocześnie procesów roboczych ma równie duże znaczenie, jak czas trwania poszczególnych żądań. Wysokie obciążenie procesora może być dopuszczalne przy dobrej przepustowości; samo w sobie nie wskazuje jednak, czy klienci muszą długo czekać. Dlatego do porównania należy uwzględnić rozkłady czasów odpowiedzi oraz wskaźniki błędów przy określonych poziomach obciążenia.
W przypadku baz danych jest to Pamięć podręczna L3 to tylko część obrazu. Model 9755 posiada łącznie 512 MB, a model 9965 łącznie 384 MB. Te parametry modeli nie świadczą o przewadze w zakresie baz danych: wielkość zestawu danych, wzorce dostępu, podział pracy oraz konfiguracja pamięci RAM wpływają na to, jak często potrzebne są dane z innych poziomów pamięci.
Zarządzana usługa Redis może uzupełniać zestaw aplikacji, pełniąc na przykład rolę pamięci podręcznej. W tym celu dostawcy muszą wziąć pod uwagę nie tylko zasoby procesora, ale przede wszystkim dostępną pamięć operacyjną oraz wymagania konkretnej usługi. Artykuł na temat Redis 8 i decyzje dotyczące aktualizacji dla dostawców usług hostingowych dotyczy między innymi limitów pamięci oraz funkcjonowania tego typu usług.
Aby zapewnić rzetelne porównanie modeli, należy w miarę możliwości utrzymać porównywalny zestaw maszyn wirtualnych (VM-Mix), pojemność pamięci RAM, pamięć masową oraz poziomy obciążenia. W przeciwnym razie nie da się sensownie powiązać różnic w czasach odpowiedzi lub przepustowości z wyborem procesora. Również szybsza obsługa pojedynczego zapytania i wyższa całkowita przepustowość to odrębne cele, które podczas planowania taryf mogą być różnie wyceniane.
Przykładowe planowanie pojemności maszyn wirtualnych
Przykład obliczeniowy pozwala zobrazować rzędy wielkości: serwer wyposażony w procesor EPYC 9965 posiada 192 rdzenie fizyczne i 384 wątki. Jeśli skonfiguruje się na nim 48 maszyn wirtualnych, z których każda ma cztery procesory vCPU, daje to 48 × 4 = 192 przydzielone procesory vCPU. Jest to obliczenie przydziału, a nie pomiar osiągalnej wydajności maszyn wirtualnych.
A vCPU nie oznacza to automatycznie, że jest to fizyczne jądro zarezerwowane na wyłączność. Hypervisor planuje pracę procesorów wirtualnych na dostępnych procesorach logicznych; faktyczne wykonywanie zadań zależy od tego, które maszyny wirtualne działają jednocześnie i jakie zasoby są im przydzielane. Również 384 wątki procesora nie odpowiadają 384 niezależnym rdzeniom fizycznym.
Dla Overbooking Najpierw należy określić, jakiego obciążenia w tym samym czasie się spodziewasz i jaką wydajność zapewnia dana taryfa. Większa liczba przydzielonych procesorów vCPU może sprawdzić się w przypadku rzadko występujących szczytów obciążenia, ale zwiększa ryzyko opóźnień, gdy wielu gości wykonuje obliczenia jednocześnie. Sprawdź to założenie na podstawie rzeczywistego składu klientów, a nie wyłącznie liczby wątków.
Następnie należy osobno obliczyć zapotrzebowanie na pamięć: zsumuj planowaną ilość pamięci RAM dla maszyn wirtualnych i uwzględnij dodatkowo zapotrzebowanie hiperwizora oraz rezerwy operacyjne. Obliczenia dotyczące procesora nie wskazują, czy host zapewnia wystarczającą ilość pamięci RAM ani czy wymagana przepustowość pamięci jest wystarczająca przy jednoczesnej aktywności wszystkich maszyn-gości.
To samo dotyczy pamięci masowej i sieci. Wiele maszyn wirtualnych może jednocześnie uzyskiwać dostęp do dysków NVMe lub przesyłać dane; w tym przypadku istotne znaczenie mają nie tylko całkowita przepustowość, ale także opóźnienia operacji wejścia/wyjścia oraz szczytowe obciążenia. Dlatego należy uwzględnić w planowaniu podłączenie i wydajność faktycznie stosowanych dysków oraz kart sieciowych.
W końcu potrzebujesz rezerwy na konserwację i awarie. Jeśli po awarii jednego hosta pozostały host ma przejąć dodatkowe maszyny wirtualne, standardowe obciążenie nie może już zajmować wszystkich potrzebnych do tego zasobów. Przykład z 48 maszynami wirtualnymi nie określa ani bezpiecznego limitu obciążenia, ani wskaźnika konsolidacji; oba te parametry należy sprawdzić w oparciu o konkretne środowisko.
Przygotowanie platformy i wirtualizacji
Planowanie platformy należy rozpocząć od konkretnego modelu procesora oraz od ustalenia, czy potrzebne jest jedno, czy dwa gniazda. Liczba rdzeni, pamięć RAM i interfejsy wejścia/wyjścia muszą łącznie odpowiadać wymaganiom docelowego systemu hosta. Model z serii P, taki jak EPYC 9655P, jest przeznaczony do jednego gniazda i dlatego nie wchodzi w grę w przypadku konfiguracji dwugniazdowej.
Następnie sprawdź Zatwierdzenie przez producenta dla procesora, płyty głównej i systemu BIOS. Chociaż Turin wykorzystuje gniazdo SP5, to jednak istniejący serwer z gniazdem SP5 nie obsługuje z tego powodu każdego modelu 9005. Również zasilacz i system chłodzenia muszą być zatwierdzone dla wybranego procesora i przewidzianej obudowy.
Moduły pamięci RAM należy dobrać pod kątem pojemności, liczby kanałów oraz wytycznych producenta serwera. Do tego dochodzą niezbędne dyski NVMe i karty sieciowe: decydujące znaczenie ma nie tylko ich liczba, ale także to, które gniazda lub kieszenie dyskowe są podłączone w danym systemie. W ten sposób jeszcze przed złożeniem zamówienia można sprawdzić, czy dana konfiguracja jest w ogóle możliwa na danej platformie.
W przypadku poufnych maszyn wirtualnych klientów można SEV-SNP uzupełnić ochronę pamięci VM o mechanizmy zapewniające integralność. Trusted I/O za pośrednictwem TDISP stanowi kolejny potencjalny element umożliwiający dostęp do urządzeń. To, czy powstanie z tego użyteczna oferta, zależy jednak od kombinacji oprogramowania układowego, hiperwizora, systemu operacyjnego gościa oraz, w razie potrzeby, urządzeń.
Przed podjęciem decyzji o zakupie produktu warto również wyjaśnić, w jaki sposób tworzone, uwierzytelniane i zarządzane są goście, a także jakie ograniczenia dotyczą oferowanych funkcji maszyn wirtualnych. Sama funkcja procesora nie gwarantuje ani zgodności całego stosu, ani nie chroni przed wszystkimi atakami. Dlatego należy udokumentować faktycznie obsługiwaną konfigurację i aktualizować ją wraz z kolejnymi aktualizacjami.
Pomiar pracy i identyfikacja wąskich gardeł
Aby porównać to z istniejącym sprzętem hostingowym, potrzebujesz przejrzystego profil obciążenia: mniej więcej ten sam zestaw maszyn wirtualnych, porównywalne ilości danych i określone rodzaje zapytań. Należy odnotować konfigurację pamięci RAM, pamięci masowej, sieci oraz oprogramowania. Tylko w ten sposób będzie można później ustalić, czy dane odchylenie wynika raczej z działania procesora, czy też z innej zmiany w systemie.
Zbadaj kilka poziomów obciążenia, a nie tylko jedną wartość szczytową. Należy przy tym zarejestrować przepustowość, rozkład czasów odpowiedzi oraz wskaźniki błędów: wyższa przepustowość ma niewielką wartość dla oferty hostingowej, jeśli jednocześnie wiele zapytań jest realizowanych z opóźnieniem lub kończy się niepowodzeniem. Należy z góry określić, jakie czasy odpowiedzi i wskaźniki błędów są akceptowalne dla danej usługi.
Należy jednocześnie monitorować wykorzystanie pamięci RAM i zachowanie pamięci, a także opóźnienia oraz obciążenie pamięci masowej i sieci. Jeśli czasy odpowiedzi wydłużają się, mimo że procesor nadal wykazuje rezerwy mocy obliczeniowej, przyczyną może być na przykład ograniczenie ze strony innego elementu platformy. Z drugiej strony samo wysokie obciążenie procesora nie świadczy jeszcze o tym, że klienci doświadczają złych wrażeń użytkownika.
W przypadku nietypowych czasów odpowiedzi maszyn wirtualnych należy sprawdzić założoną równoczesność oraz Przeładowanie procesora. Następnie porównaj rzeczywistą konfigurację pamięci RAM, ustawienia oprogramowania układowego i hiperwizora z planowaną konfiguracją. Zmieniaj poszczególne czynniki w sposób jak najbardziej ukierunkowany i powtarzaj ten sam poziom obciążenia, aby nie pomylić przyczyny z równoczesną zmianą obciążenia.
Do bieżącej eksploatacji należą ponadto biuletyny bezpieczeństwa, aktualizacje oprogramowania układowego, kontrola dostępu oraz weryfikowalne kopie zapasowe. Firma AMD publikuje również informacje dotyczące luk w zabezpieczeniach i środków zaradczych dla procesorów EPYC; operatorzy muszą zaplanować odpowiednie aktualizacje od producenta serwerów. Po zakończeniu prac konserwacyjnych należy ponownie sprawdzić, czy funkcje zabezpieczeń i oferowane konfiguracje gości są dostępne zgodnie z założeniami.
Decydujące znaczenie mają zaopatrzenie i opłacalność
Decyzja o zakupie zaczyna się od pytania, czy obecna platforma nadal spełnia wymagania. Jeśli jej wydajność i rezerwy są wystarczające, dalsze jej użytkowanie może być uzasadnione. Natomiast w przypadku aktualizacji do wersji Turin konkretny model procesora, oprogramowanie układowe oraz pozostałe komponenty muszą zostać zatwierdzone przez producenta serwera; sam wspólny gniazdo SP5 nie stanowi wystarczającego dowodu.
Porównaj jeden 1P-Host w konfiguracji 2P, biorąc pod uwagę całkowite zapotrzebowanie na rdzenie, pamięć RAM i porty. Dwa gniazda nie są wymagane wyłącznie ze względu na dużą docelową liczbę maszyn wirtualnych. Z drugiej strony platforma z jednym gniazdem może zostać wykluczona, jeśli wybrany serwer nie jest w stanie pomieścić wymaganej kombinacji pamięci i wejść/wyjść.
W przypadku wielu niezależnych zadań wykonywanych jednocześnie gęstość rdzeni może stanowić ważne kryterium wyboru. Natomiast w przypadku aplikacji wrażliwych na opóźnienia warto rozważyć w swoim zestawie aplikacji również modele o wyższej częstotliwości taktowania. Należy również przeanalizować konkretny model licencyjny: koszty na rdzeń, gniazdo lub maszynę wirtualną mogą wpłynąć na ekonomiczną kolejność wyboru platform.
Die TDP nie jest to pomiar zużycia energii przez cały serwer. AMD podaje dla procesorów EPYC 9755 i 9965 wartość TDP wynoszącą po 500 watów; nie pozwala to jednak określić ani poboru mocy przy danym obciążeniu, ani rocznych kosztów energii. Pamięć RAM, dyski, sieć i chłodzenie są częścią analizy systemu.
Aby przeprowadzić porównanie zużycia energii i kosztów, należy przeanalizować cały system przy reprezentatywnych poziomach obciążenia oraz uwzględnić niezbędne rezerwy. Należy porównać koszty zakupu, licencji na oprogramowanie oraz eksploatacji w całym planowanym okresie użytkowania. Bez porównywalnych danych dotyczących obecnego stanu nie można obiecać ani konkretnych oszczędności, ani wiarygodnego wskaźnika konsolidacji.
Źródła i aktualny stan wiedzy
Stan badań:
Stan badań: 4 listopada 2026 r. Nazwa „EPYC Turin” odnosi się do serii 9005 zaprezentowanej w 2024 r. Przed dokonaniem zakupu należy ponownie sprawdzić zatwierdzenia modeli i platform.
https://www.amd.com/en/newsroom/press-releases/2024-10-10-amd-launches-5th-gen-amd-epyc-cpus-maintaining-le.html
https://www.amd.com/content/dam/amd/en/documents/epyc-business-docs/datasheets/amd-epyc-9005-series-processor-datasheet.pdf
https://docs.amd.com/api/khub/documents/UIqhAbjRhgnzgzzdVU4pUw/content
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58466-amd-epyc-9005-tg-cloud-datacenter.pdf
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/user-guides/58462_amd-epyc-9005-tg-architecture-overview.pdf
https://www.amd.com/en/developer/sev.html
https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3023.html




