Pięć sposobów na przyspieszenie aplikacji wirtualnych

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Pięć sposobów na przyspieszenie aplikacji wirtualnych - Technologia
Pięć sposobów na przyspieszenie aplikacji wirtualnych - Technologia

Zawartość


Źródło: Viktorus / Dreamstime.com

Na wynos:

Naucz się pięciu technik przyspieszania aplikacji wirtualnych bez rozbijania banku.

Jedną z frustracji związanych z wirtualizacją aplikacji i komputerów stacjonarnych jest wydajność. Nikt nie chce czekać dłużej niż sekundę lub dwie na pojawienie się aplikacji po uruchomieniu. Jako użytkownicy oczekujemy, że nasze aplikacje pojawią się natychmiast po dwukrotnym kliknięciu ikony. Nie zdajemy sobie sprawy z tego, co dzieje się w tle, aby dostarczać te aplikacje między serwerem, przez zapory ogniowe, poprzez równoważniki obciążenia, bezprzewodowo lub przez przewody do naszych komputerów stacjonarnych i urządzeń mobilnych, ani nas to nie obchodzi. Nasza zbiorowa cierpliwość osłabła z obietnicami lepszej, szybszej, bezpieczniejszej technologii i nadszedł czas na „ustąpienie lub zamknięcie” od dostawców i personelu pomocniczego. Z kolei dostawcy i pracownicy pomocy technicznej dzielą nasz ból i zareagowali niektórymi technologiami przyspieszenia, które zapewniają wydajność na poziomie lokalnym lub zbliżonym do niego.


W przypadku użytkowników chodzi przede wszystkim o szybkość, ale w przeciwieństwie do użytkowników, architekci, administratorzy systemów i dyrektorzy IT nie szukają szybszej reakcji na podwójne kliknięcia użytkownika; szukają także skalowalności, lepszego bezpieczeństwa i dłuższej żywotności technologii niż kiedykolwiek wcześniej. W końcu użytkownicy są najsurowszymi dostawcami i wsparciem, dlatego też odkrywanie technik i technologii aplikacji wirtualnych jest na wyciągnięcie ręki. W tym artykule opisano pięć sposobów przyspieszenia aplikacji wirtualnych. Pięć rozwiązań nie ma określonej kolejności, ale wszystkie koncentrują się w jednym z trzech kluczowych obszarów optymalizacji i przyspieszenia: infrastruktura, kod aplikacji i przepustowość.

Optymalizacja WAN i LAN

Optymalizację sieci WAN i LAN można nazwać rozwiązaniem pasma, którego ostatecznym celem jest umieszczenie większej ilości informacji i danych w potoku sieci w bardziej wydajny sposób. Ponieważ wydajność aplikacji jest tak ważna dla użytkowników końcowych, istnieją pewne genialne metody dostarczania większej ilości treści w krótszym czasie, takie jak utworzenie sieci dostarczania treści (CDN), która zasadniczo przenosi dane bliżej konsumenta lub użytkownika końcowego. Przeniesienie danych bliżej użytkownika zmniejsza opóźnienie, ponieważ dane muszą przejść przez mniej „przeskoków” lub sieci, aby dotrzeć do miejsca docelowego. Większość dostawców usług w chmurze ma już sieci CDN, aby pomóc właścicielom aplikacji w dostarczaniu rozproszonych treści blisko swoich klientów.


Równoważenie obciążenia optymalizuje przepustowość, rozkładając żądania klientów na wiele serwerów lub w wielu lokalizacjach, aby lepiej dzielić ciężar dostarczania aplikacji. Usługi równoważenia obciążenia zwiększają szybkość dostarczania aplikacji, usuwając korki występujące przy żądaniach użytkowników dotyczących pojedynczej aplikacji. Ale zwiększają także niezawodność, ponieważ mogą skutecznie dostarczać aplikację na serwer, który nie jest przeciążony innymi żądaniami.

Zwiększenie przepustowości między aplikacjami a klientami wydaje się oczywistym ulepszeniem w celu przyspieszenia dostarczania aplikacji. Kto może argumentować, że gigabitowe połączenie sieciowe między infrastrukturą aplikacji a komputerem klienckim jest złe? Nawet źle zaprojektowana i pomyślana aplikacja uzyska znaczny wzrost wydajności poprzez zwiększenie przepustowości między źródłem a celem.

Kompresja danych i korzystanie ze skompresowanych typów mediów, takich jak JPEG, MPEG-4 i MP3, mogą mieć znaczący wpływ na dostarczanie aplikacji. Kompresja danych zawartości bazowej, co oznacza HTML, CSS i JavaScript, może spowodować 30% lub więcej skrócenie czasu ładowania.

Dyski SSD i macierze Flash

Wydaje się, że dyski SSD i macierze flash są nową technologią „przejdź do” w celu dowolnego zwiększenia wydajności aplikacji. Prawdą jest, że pamięć półprzewodnikowa jest znacznie szybsza niż spinowanie dysków, ale jest również znacznie droższa. Rozwiązaniem może być inne wykorzystanie dysków SSD - jako pamięci podręcznej dla „gorących” danych zamiast danych w spoczynku. Dyski SSD mogą dostarczać dane znacznie szybciej niż dyski obrotowe, ale część tej wydajności jest tracona w tłumaczeniu przez sieć i różne komponenty sieciowe. Jeśli jednak używa się tak zwanej „pamięci podręcznej flash”, aby wykorzystać prędkość dysku SSD do przechowywania informacji w pamięci podręcznej, wyniki są imponujące. Intel informuje o „12-krotnie większej wydajności transakcyjnego przetwarzania bazy danych i do 36-krotnie szybszym przetwarzaniu obciążeń zwirtualizowanych intensywnie we / wy”.

Dyski SSD do buforowania danych mają sens ze względu na szybkość, z jaką dane mogą być pobierane i umieszczane w pamięci. A jeśli dyski SSD są używane wyłącznie do celów buforowania, wówczas trzeba będzie kupić znacznie mniej z nich, aby uzyskać wynikowe zwiększenie wydajności. (Aby uzyskać więcej informacji na temat pamięci, zobacz Jak zoptymalizować rozwiązanie pamięci masowej dla przedsiębiorstw.)

Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia

Nie możesz poprawić swoich umiejętności programistycznych, gdy nikt nie dba o jakość oprogramowania.

Wirtualne GPU

Zapytaj każdego, kto korzysta z programu CAD, oprogramowania do edycji wideo, a nawet aplikacji do zarządzania projektami, w której chce, aby te aplikacje zostały załadowane, a usłyszysz refren „lokalnie”. Przekształcając te intensywne aplikacje graficzne w wirtualne środowisko oznaczające katastrofę do czasu wydania technologii wirtualnego procesora graficznego (GPU).

Wirtualne procesory graficzne umożliwiają wreszcie umieszczenie dowolnego obciążenia na maszynie wirtualnej. Old-schoolowe ograniczenia CAD zostały teraz zasymilowane, podobnie jak edytory wideo i graficy. Nawet ci, którzy pracują w trzech wymiarach, są teraz wirtualnie obecni dzięki wirtualnym procesorom graficznym.

Dzięki tej technologii możliwe jest zainstalowanie specjalnych kart GPU, kompatybilnych z systemami hostów maszyn wirtualnych, a następnie ich atrybuty sprzętowe są abstrakcyjne lub wirtualizowane, aby mogły być używane przez maszyny wirtualne.

Oprogramowanie zoptymalizowane pod kątem wydajności

Zdenerwowani i sfrustrowani administratorzy systemu często mówią, że naprawianie kodu nie jest ich zadaniem. Wszechobecny problem polega jednak na tym, że programiści mogą być najlepsi w programowaniu aplikacji, ale nie mają absolutnie żadnych wskazówek ani chęci uzyskania wskazówek na temat optymalizacji kodu pod kątem wydajności.Często jest tak, że więcej pamięci RAM, szybszych dysków lub mocniejszych procesorów naprawi wszelkie problemy związane z wydajnością, które mogą występować w kodzie, i jest to do pewnego stopnia prawdziwe. Alternatywnie, naprawianie kodu jest znacznie tańsze i łatwiejsze do rozwiązania niż przebudowa infrastruktury po prostu w celu przyspieszenia źle napisanych aplikacji.

Są tacy, jak pionier komputerowy Donald Knuth, który powiedział o optymalizacji kodu komputerowego: „Jeśli wszystko zoptymalizujesz, zawsze będziesz niezadowolony”. Niezależnie od opinii pana Knutha, optymalizację kodu pod kątem zrównoważonej poprawy należy przeprowadzić i tolerować . Ale co z programami komercyjnymi, które kupujesz i wdrażasz do swoich użytkowników? Na przykład wiecznie zielony pakiet Microsoft Office jest standardowym pakietem aplikacji, które administratorzy systemu muszą udostępnić zarówno użytkownikom lokalnym, jak i zdalnym.

W przypadku programów komercyjnych, na które administratorzy nie mają wpływu, muszą stosować wielowarstwową strategię poprawy wydajności. Buforowanie wspólnych bitów aplikacji będzie największą technologią administratora, która przyspieszy dostarczanie dużych aplikacji użytkownikom.

Buforowanie

Za każdym razem, gdy czytasz lub słyszysz warunki wstępnego ładowania, wstępnego przetwarzania lub wstępnej kompilacji, pisarz lub mówca najprawdopodobniej odnosi się do pewnego rodzaju buforowania. Buforowanie aplikacji zwykle oznacza ładowanie niektórych statycznych i dynamicznych elementów zawartości do bufora pamięci, aby można je było łatwo odzyskać na żądanie. Jedynymi bitami dostarczanymi przez cały proces są te, które mają konkretny związek z użytkownikiem lub innymi danymi zależnymi od czasu lub sesji. Cała reszta jest zapisana w pamięci.

Buforowanie kładzie mniejszy nacisk na pamięć, przepustowość sieci i procesory. Dane czekają w pamięci, aż zostaną przywołane, a następnie kontynuują znacznie krótszą podróż do użytkownika końcowego. Większość technologii łączy buforowanie z lokalizacją, aby szybciej dostarczać treści. Innymi słowy, wspólne dane - czyli dane wspólne dla wszystkich użytkowników - są umieszczane we wspomnianych wyżej sieciach CDN, a następnie dostarczane użytkownikom zbliżonym do żądanych danych. Niektóre rozwiązania posuwają się tak daleko, że lokalnie buforują dane w zdalnych lub satelitarnych witrynach, aby te wspólne bity znajdowały się tam, gdzie są wykorzystywane i nie musiały być pobierane na nowo przez sieć WAN lub łącze internetowe.

Buforowanie jest często preferowaną metodą przyspieszania aplikacji, ponieważ jest znacznie tańsze niż rozwiązania o porównywalnej wydajności oparte na ulepszeniach infrastruktury. (Aby dowiedzieć się więcej o buforowaniu, zobacz Który zapis jest właściwy? Spojrzenie na metody buforowania we / wy).

Podsumowanie

Być może podstawową zasadą przy próbie optymalizacji lub przyspieszenia aplikacji wirtualnych w dowolnym środowisku jest najpierw próba buforowania, a następnie uzupełnienie tej strategii innymi technologiami. Buforowanie jest najtańszym rozwiązaniem, a także najmniej inwazyjne. Najlepszą radą jest zakup dużej ilości pamięci RAM do buforowania pamięci i dysków SSD do buforowania danych na gorąco. Staraj się utrzymywać koszty na rozsądnym poziomie, ale pamiętaj, że kiedy wydajesz pieniądze na infrastrukturę i oprogramowanie, możesz amortyzować je przez cały okres użytkowania technologii i rozkładać na poszczególnych użytkowników, aby ułatwić zarządzanie. Na koniec dbaj o produktywność i zadowolenie użytkowników, a oni zapewnią ci zarobkową pracę.