Udostępnij za pośrednictwem


Rozwiązywanie problemów z opóźnieniami tworzenia węzła wsadowego podczas ponownego uruchamiania lub ponownego tworzenia

W tym artykule omówiono sposób rozwiązywania opóźnień tworzenia węzła wsadowego podczas ponownego uruchamiania lub ponownego tworzenia obrazu węzła. Unikaj problemów w usłudze Microsoft Azure Batch, które są spowodowane przez zainstalowanie dużego środowiska uruchomieniowego języka Python i pakietów języka Python. Ta instalacja powoduje długie opóźnienia i możliwe nieoczekiwane błędy, gdy węzeł wsadowy jest najpierw dodawany do puli wsadowej lub po ponownym uruchomieniu lub ponownym obrazie węzła.

Symptomy

Podczas tworzenia puli wsadowej i dodawania węzła do puli albo ponownego uruchomienia lub odtworzenia obrazu węzła instalacja aplikacji trwa zbyt długo lub kończy się niepowodzeniem po długim czasie instalacji.

Przyczyna

Ten problem występuje, ponieważ pakiet języka Python jest zbyt duży, aby użyć go jako zadania uruchamiania.

Podczas tworzenia puli wsadowej w usłudze Azure Batch i dodawania węzła wsadowego zalecany proces polega na użyciu zadania uruchamiania w celu przygotowania środowiska operacyjnego. To zadanie uruchamiania może wykonywać następujące czynności:

  • Zainstaluj aplikacje uruchamiane przez zadania.

  • Uruchom procesy w tle po pierwszym dodaniu węzła wsadowego do puli lub ponownym uruchomieniu węzła lub ponownym obrazie.

Jednak w przypadku środowiska uruchomieniowego języka Python i aplikacji, które wymagają uruchomienia języka Python, pakiet może być tak duży, że instalacja zadania uruchamiania może trwać długo. Nawet po wystąpieniu większości instalacji instalacja może nadal zakończyć się niepowodzeniem z powodu nieoczekiwanego problemu.

Rozwiązanie

Aby rozwiązać ten problem, należy dopasować maszynę wirtualną i lokalizacje kont wsadowych oraz wersje systemu operacyjnego oraz preinstalować środowisko Python i jego pakiety przed przechwyceniem obrazu gen1.

Użyj wstępnie spakowanego obrazu niestandardowego, aby przydzielić węzły wsadowe. Aby uzyskać ogólne informacje na temat tego procesu, zobacz Tworzenie niestandardowej puli obrazów przy użyciu obrazu zarządzanego.

Aby zapobiec długim okresom instalacji i uniknąć niepowodzenia instalacji, wykonaj następujące ogólne rozwiązania:

  • Określ tę samą lokalizację lub region do użycia podczas tworzenia konta wsadowego i tworzenia węzła wsadowego maszyny wirtualnej.

  • Wybierz obraz o nazwie Gen1 , taki jak Windows Server 2019 Datacenter — Gen1 (węzeł systemu Windows) lub Ubuntu Server 18.04 LTS — Gen1 (węzeł systemu Linux). Obraz gen1 jest konieczny, ponieważ niektóre rodziny maszyn wirtualnych nie obsługują obrazów gen2.

  • Podczas tworzenia puli węzłów w witrynie Azure Portal upewnij się, że lista sku w sekcji System operacyjny zawiera określoną wersję systemu.

  • Dostosuj instalację języka Python, aby została wstępnie zainstalowana na obrazie i działa dla wszystkich użytkowników.

Procedury specyficzne dla systemu

W poniższych sekcjach z kartami opisano kroki, które należy wykonać dla węzła wsadowego systemu Windows lub węzła wsadowego systemu Linux.

Węzeł systemu Windows: zainstaluj wymaganą wersję języka Python na dysku C i ręcznie dołącz ścieżkę systemowa

Podsumowanie procedury

Po utworzeniu i uruchomieniu maszyny wirtualnej połącz się z maszyną wirtualną przy użyciu protokołu RDP (Remote Desktop Protocol). Następnie zainstaluj wszystkie potrzebne elementy na maszynie wirtualnej, w tym wymaganą wersję środowiska uruchomieniowego języka Python (na przykład Python 3.10.4) i edytuj ścieżkę systemowa. Na koniec przechwyć obraz maszyny wirtualnej, wdrożyć go w puli wsadowej korzystającej z obrazu maszyny wirtualnej, nawiązać połączenie z nowym węzłem puli partii, a następnie przetestować go, aby upewnić się, że wstępnie zainstalowane środowisko uruchomieniowe języka Python i pakiety działają poprawnie.

Kroki procedury

  1. Utwórz maszynę wirtualną z systemem Windows w witrynie Azure Portal , określając następujące ustawienia.

    Nazwa ustawienia Wartość ustawienia
    Region Ten sam region przypisany do konta usługi Batch
    Obraz Obraz systemu Windows, który ma nazwę Gen1 (nie Gen2) i jest obsługiwany przez usługę wsadową
  2. Nawiąż połączenie z maszyną wirtualną przy użyciu protokołu RDP.

  3. Uruchom Kreatora instalacji języka Python, a następnie wybierz opcję Dostosuj instalację. Następnie na stronie Opcje zaawansowane przejdź do pola Dostosuj lokalizację instalacji i określ ścieżkę na dysku C.

  4. Zmodyfikuj zmienną środowiskową systemu tak Path , aby zawierała ścieżkę instalacji języka Python (np . C:\Python\) i ścieżkę do zainstalowanych pakietów języka Python (takich jak C:\Python\Scripts\).

    Uwaga 16.

    Kreator instalacji języka Python dodaje te ścieżki tylko do zmiennej środowiskowej użytkownika dla programu Path. W związku z tym należy dodać ścieżki do odpowiedniej zmiennej środowiskowej systemu . W przeciwnym razie podczas przechwytywania obrazu maszyny wirtualnej ustawienia języka Python i dodatkowe pakiety oprogramowania zainstalowane przez użytkownika zostaną usunięte z obrazu.

    Aby dołączyć te ścieżki do zmiennej środowiskowej systemu, wykonaj następujące kroki:

    1. Wybierz pozycję Start, a następnie wyszukaj i wybierz pozycję Ustawienia.

    2. W aplikacji Ustawienia wybierz pozycję System About Advanced system settings (Informacje>o>zaawansowanych ustawieniach systemu).

    3. W oknie dialogowym Właściwości systemu wybierz kartę Zaawansowane, a następnie wybierz pozycję Zmienne środowiskowe.

    4. W oknie dialogowym Zmienne środowiskowe przejdź do sekcji Zmienne systemowe, wybierz zmienną Path, a następnie wybierz pozycję Edytuj.

    5. W oknie dialogowym Edytowanie zmiennej środowiskowej wybierz pozycję Nowy, a następnie wprowadź ścieżkę do zainstalowanych pakietów języka Python. Następnie powtórz ten krok, aby wprowadzić ścieżkę do środowiska uruchomieniowego języka Python.

    6. Wybierz przycisk OK trzy razy, aby zastosować zmiany w trzech oknach dialogowych.

  5. Przetestuj instalację języka Python w konsoli programu .

    Na przykład po uruchomieniu python --version polecenia w celu zweryfikowania zainstalowanej wersji języka Python możesz uruchomić interpreter języka Python, aby spróbować zaimportować pakiet, który nie został jeszcze zainstalowany (na przykład numpy). Po otrzymaniu oczekiwanego ModuleNotFoundError wyjątku uruchom pip install <package-name> polecenie , aby zainstalować pakiet, a następnie ponownie uruchom interpreter języka Python, aby zaimportować ten pakiet. Polecenie importu powinno teraz zakończyć się pomyślnie.

  6. Przechwyć obraz maszyny wirtualnej, wykonując kroki opisane w temacie Tworzenie obrazu maszyny wirtualnej w portalu, ale zastosuj tylko następujące ustawienia na stronie Tworzenie obrazu .

    Nazwa ustawienia Wartość ustawienia
    Grupa zasobów: Wybierz z listy grup zasobów lub wybierz pozycję Utwórz nową , aby utworzyć grupę zasobów.
    Docelowa galeria zasobów obliczeniowych platformy Azure Wybierz z listy galerii obliczeniowych platformy Azure lub wybierz pozycję Utwórz nową , aby utworzyć galerię obliczeniową platformy Azure.
    Definicja obrazu docelowej maszyny wirtualnej Wybierz pozycjęUtwórz nowy. Na stronie Tworzenie definicji obrazu maszyny wirtualnej wprowadź tylko nazwę definicji obrazu maszyny wirtualnej, którą chcesz nadać obrazowi. (Strona zostanie automatycznie wyświetlona Ustawienia wydawcy, oferty i jednostki SKU ).
    Numer wersji Wprowadź numer wersji, który chcesz nadać obrazowi maszyny wirtualnej.
  7. Po zastosowaniu ustawień obrazu maszyny wirtualnej wybierz pozycję Przejrzyj i utwórz , aby zweryfikować ustawienia, a następnie wybierz pozycję Utwórz , aby utworzyć obraz. Ten krok tworzy następujące trzy typy zasobów:

    • Azure Compute Gallery
    • Definicja obrazu niestandardowego
    • Wersja definicji obrazu niestandardowego
  8. Po utworzeniu trzech zasobów wykonaj następujące kroki, aby utworzyć nową pulę wsadową korzystającą z obrazu maszyny wirtualnej:

    1. W witrynie Azure Portal wyszukaj i wybierz pozycję Konta usługi Batch.

    2. Na liście kont wsadowych wybierz swoje konto.

    3. W okienku menu konta usługi Batch wybierz pozycję Pule, a następnie wybierz pozycję Dodaj , aby utworzyć pulę wsadową.

    4. Na stronie Dodawanie puli wprowadź następujące ustawienia, a następnie wybierz przycisk OK.

      Nazwa ustawienia Wartość ustawienia
      Identyfikator puli Nowa nazwa puli
      Typ obrazu Obraz niestandardowy — galeria obrazów udostępnionych *
      Galeria obrazów udostępnionych Nazwa docelowej galerii obliczeniowej platformy Azure określonej podczas tworzenia obrazu maszyny wirtualnej
      Obraz Nazwa definicji obrazu maszyny wirtualnej określona podczas tworzenia obrazu maszyny wirtualnej
      Wersja Numer wersji określony podczas tworzenia obrazu maszyny wirtualnej
      System operacyjny Windows
      Dystrybucja systemu operacyjnego windowsserver
      Jednostka SKU systemu operacyjnego Kod produktu wybranej wersji systemu operacyjnego (na przykład microsoftwindowsserver-2019-datacenter)

      * Galeria obrazów udostępnionych to inna nazwa galerii obliczeń platformy Azure. Jest to jeden z zasobów utworzonych podczas tworzenia obrazu maszyny wirtualnej.

  9. Po przydzieleniu węzła puli partii przejdź do strony węzła puli wsadowej, a następnie wybierz pozycję Połącz w menu nagłówka.

  10. W okienku Połącz wybierz opcję Wygeneruj użytkownika, wybierz przycisk Generuj losowego użytkownika, a następnie wybierz pozycję Pobierz plik RDP.

  11. Uruchom pobrany plik RDP, aby nawiązać połączenie z nowym węzłem wsadowym.

  12. Ponownie przetestuj instalację języka Python, aby upewnić się, że wstępnie zainstalowana wersja działa poprawnie.

Informacje

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.