Uwaga: Jestem programistą typu front-end w świecie serwerów.
Cześć chłopaki. Mam instancję serwera na EC2 c5d.9xlarge
, której specyfikacje to:
- System: Ubuntu 18.04
- vCPU: 36 wątków / rdzeni
- Pamięć: 72 GB
- Pamięć: 900 GB NVMe SSD
- Dedykowana przepustowość EBS: 7 000 Mb / s
- Wydajność sieci: 10 Gb / s
Scenariusz: używam tego serwera do przesyłania dużych filmów (4K, 1+ godz.) I przetwarzania ich przy użyciu FFMPEG, ale w porównaniu do mojego poprzedniego serwera UpCloud z 12 rdzeniami i 48 GB pamięci RAM, ten serwer EC2 zajmuje 1,5 razy dłużej na przesyłanie i przetwarzanie , co moim zdaniem nie powinno tak być.
Pytanie: Jak zmaksymalizować wydajność tego, za co płacę?
ubuntu
amazon-web-services
amazon-ec2
Martavis P.
źródło
źródło
Odpowiedzi:
Twój
c5d.9xlarge
jest wyposażony w 900GB Instance Storage (aka ulotne pamięci ) - używasz, że do przechowywania i przetwarzania plików? Podczas gdy Twoja instancja ma część dedykowanego pasma EBS, pamięć masowa SSD w instancji będzie nadal znacznie szybsza . Sugeruję użycie tego dla wszystkich plików źródłowych i tymczasowych i zapisywanie wyników tylko w EBS.Istnieją jednak pewne zastrzeżenia dotyczące przechowywania instancji:
Musisz go sformatować i zamontować , zanim będzie można go użyć. Więcej informacji można znaleźć w tej odpowiedzi: Automatycznie montuj pamięć instancji SSD na AWS EC2 w Ubuntu 16.04
Zawartość jest usuwana po zatrzymaniu i ponownym uruchomieniu instancji. Przetrwa restart, ale nie stop / start.
Aktualizacja: Domyślnie dysk SSD nie jest zamontowany - aby skorzystać z niego, należy wykonać czynności opisane w powyższej połączonej odpowiedzi. W standardowej konfiguracji po uruchomieniu będziesz używać EBS, który jest wolniejszy niż SSD.
Następnie musisz upewnić się, że faktycznie z niego korzystasz - ustaw katalog wysyłania , pracy i tymczasowy na ten punkt montowania SSD.
Lub jeszcze lepiej - ponieważ masz 72 GB pamięci RAM - utwórz dysk RAM i użyj go do plików tymczasowych. Będzie to nawet szybsze niż SSD (jeśli pliki się zmieszczą).
Najpierw zignoruj szybkość przesyłania i zoptymalizuj przetwarzanie - prześlij plik do EBS i określ czas przetwarzania, następnie prześlij na dysk SSD i określ czas, a następnie na dysk RAM i określ czas przetwarzania. Zobacz, jak bardzo się różnią.
Na szybkość przesyłania wpływa wiele aspektów, w tym odległość i opóźnienie między tobą a regionem AWS, do którego przesyłasz. Czy korzystasz z regionu AWS blisko Ciebie?
Re wydajność procesora - masz 36 dostępnych procesorów, jednak każdy rdzeń może być wolniejszy niż rdzenie poprzedniej maszyny 12-rdzeniowej. Zależy to od architektury procesora i szybkości zegara. Jeśli jednak możesz równolegle przetwarzać wideo w 36 wątków, powinieneś być lepiej w tym przypadku. Jeśli korzystasz z jednego wątku, możesz nie uzyskać pożądanej wydajności.
Mam nadzieję, że to pomoże :)
źródło
Czy jest jakiś zakres, aby spojrzeć na alternatywy? Za cenę
c5d.9xlarge
nawet, jeśli otrzymujesz znaczną zniżkę, na rynku serwerów dedykowanych możesz mieć kilka równoważnych lub lepszych maszynKorzystanie z chmury dla tego rodzaju problemu o skali pionowej jest przepisem na przepłacanie i, jak widzieliście, niską wydajność
Przepraszam za brak odpowiedzi, ale nie mam wystarczającej liczby przedstawicieli, aby móc komentować
źródło