Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
AzCopy to narzędzie wiersza polecenia, które umożliwia kopiowanie obiektów blob lub plików do i z konta magazynowego. Ten artykuł pomaga zoptymalizować wydajność.
Uwaga
Aby uzyskać informacje na temat zawartości ułatwiającej rozpoczęcie pracy z narzędziem AzCopy, zobacz Rozpoczynanie pracy z narzędziem AzCopy.
Możesz porównać wydajność, a następnie użyć poleceń i zmiennych środowiskowych, aby znaleźć optymalny kompromis między wydajnością a zużyciem zasobów.
Uruchamianie testów porównawczych
Możesz uruchomić test porównawczy wydajności dla kontenerów określonych obiektów blob lub udziałów określonych plików, aby wyświetlić ogólne statystyki wydajności i zidentyfikować wąskie gardła wydajności. Test można uruchomić, przekazując lub pobierając wygenerowane dane testowe.
Użyj następującego polecenia, aby uruchomić test porównawczy wydajności.
Składnia
azcopy benchmark 'https://<storage-account-name>.blob.core.windows.net/<container-name>'
Przykład
azcopy benchmark 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D'
Wskazówka
W tym przykładzie argumenty ścieżki są zamknięte w apostrofach (''). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń systemu Windows (cmd.exe). Jeśli używasz powłoki poleceń systemu Windows (cmd.exe), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
To polecenie uruchamia test porównawczy wydajności, przekazując dane testowe do określonego miejsca docelowego. Dane testowe są generowane w pamięci, przekazywane do miejsca docelowego, a następnie usuwane z miejsca docelowego po zakończeniu testu. Możesz określić liczbę plików do wygenerowania i rozmiar, który chcesz mieć, używając opcjonalnych parametrów polecenia.
Jeśli wolisz uruchomić ten test, pobierając dane, ustaw parametr mode na download wartość. Aby uzyskać szczegółową dokumentację, zobacz azcopy benchmark.
Optymalizacja pod kątem dużej liczby plików
Przepływność może się zmniejszyć podczas przesyłania dużej liczby plików. Każda operacja kopiowania przekłada się na co najmniej jedną transakcję, którą musi wykonać usługa magazynu. Podczas transferu dużej liczby plików należy wziąć pod uwagę liczbę transakcji, które trzeba wykonać, oraz potencjalny wpływ, jaki te transakcje mogą mieć, jeśli w tym samym czasie wystąpią inne działania na koncie przechowywania.
Aby zmaksymalizować wydajność, można zmniejszyć rozmiar każdego zadania, ograniczając liczbę plików, które są kopiowane w jednym zadaniu. W przypadku operacji pobierania i przekazywania zwiększ współbieżność zgodnie z potrzebami, zmniejsz aktywność dziennika i wyłącz funkcje, które generują wysokie koszty wydajności.
Zmniejsz rozmiar każdego zadania
Aby osiągnąć optymalną wydajność, upewnij się, że każde zadanie przesyła mniej niż 10 milionów plików. Zadania, które przesyłają ponad 50 milionów plików, mogą działać źle, ponieważ mechanizm śledzenia zadań narzędzia AzCopy wiąże się ze znacznym obciążeniem. Aby zmniejszyć nakład pracy, rozważ podzielenie dużych zadań na mniejsze.
Jednym ze sposobów zmniejszenia rozmiaru zadania jest ograniczenie liczby plików, na które ma wpływ zadanie. Aby to zrobić, możesz użyć parametrów polecenia. Na przykład, zadanie może kopiować tylko podzestaw katalogów, używając parametru include path jako części polecenia azcopy copy.
Użyj parametru include-pattern , aby skopiować pliki, które mają określone rozszerzenie (na przykład: *.pdf). W osobnym zadaniu użyj parametru exclude-pattern , aby skopiować wszystkie pliki, które nie mają *.pdf rozszerzenia. Aby zapoznać się z przykładami, zobacz Przekazywanie określonych plików i Pobieranie określonych obiektów blob.
Po podjęciu decyzji, jak podzielić duże zadania na mniejsze, rozważ uruchomienie zadań na więcej niż jednej maszynie wirtualnej.
Zwiększ współbieżność
Jeśli przekazujesz lub pobierasz pliki, użyj AZCOPY_CONCURRENCY_VALUE zmiennej środowiskowej, aby zwiększyć liczbę współbieżnych żądań, które mogą wystąpić na maszynie. Ustaw tę zmienną tak wysoko, jak to możliwe bez naruszania wydajności maszyny. Aby dowiedzieć się więcej na temat tej zmiennej, zobacz sekcję Zwiększanie liczby współbieżnych żądań w tym artykule.
Jeśli kopiujesz obiekty blob między kontami magazynu, rozważ ustawienie zmiennej środowiskowej AZCOPY_CONCURRENCY_VALUE na wartość większą niż 1000. Możesz ustawić tę zmienną na wysoką wartość, ponieważ narzędzie AzCopy używa interfejsów API serwer-serwer, dzięki czemu dane są kopiowane bezpośrednio między serwerami przechowywania i nie korzystają z mocy obliczeniowej Twojej maszyny.
Zmniejsz liczbę wygenerowanych logów
Wydajność można poprawić, zmniejszając liczbę wpisów dziennika tworzonych przez narzędzie AzCopy podczas wykonywania operacji. Domyślnie narzędzie AzCopy rejestruje wszystkie działania związane z operacją. Aby uzyskać optymalną wydajność, rozważ ustawienie parametru kopii, synchronizacji lub usuwania polecenia na wartość --log-level. W ten sposób narzędzie AzCopy rejestruje tylko błędy. Domyślnie poziom logowania jest ustawiony na INFO.
Wyłącz sprawdzanie długości
Jeśli przekazujesz lub pobierasz pliki, rozważ ustawienie poleceń kopiowania i synchronizacji na wartość --check-length. To ustawienie uniemożliwia narzędziu AzCopy weryfikowanie długości pliku po przeniesieniu. Domyślnie narzędzie AzCopy sprawdza długość, aby upewnić się, że pliki źródłowe i docelowe są zgodne po zakończeniu transferu. Narzędzie AzCopy wykonuje to sprawdzanie po każdym transferze plików. Ta kontrola może obniżyć wydajność, gdy zadania przesyłają dużą liczbę małych plików.
Włączanie współbieżnego skanowania lokalnego (Linux)
Skanowanie plików w niektórych systemach Linux nie jest wykonywane wystarczająco szybko, aby w pełni wykorzystać wszystkie połączenia sieciowe równoległe. W takich przypadkach można ustawić AZCOPY_CONCURRENT_SCAN wartość na wyższą liczbę.
Zwiększanie liczby współbieżnych żądań
Przepływność można zwiększyć, ustawiając zmienną AZCOPY_CONCURRENCY_VALUE środowiskową. Ta zmienna określa liczbę równoczesnych żądań, które mogą wystąpić.
Jeśli komputer ma mniej niż pięć procesorów CPU, wartość tej zmiennej jest ustawiona na 32wartość . W przeciwnym razie wartość domyślna jest równa 16-krotności liczby procesorów. Maksymalna wartość domyślna tej zmiennej to 300, ale można ręcznie ustawić tę wartość wyższą lub niższą.
Użyj wartości , azcopy env aby sprawdzić bieżącą wartość tej zmiennej. Jeśli wartość jest pusta, możesz odczytać, która wartość jest używana, patrząc na początek dowolnego pliku dziennika narzędzia AzCopy. Wybrana wartość i przyczyna jej wybrania są tam zgłaszane.
Przed ustawieniem tej zmiennej zalecamy uruchomienie testu porównawczego. Proces testu porównawczego zgłasza zalecaną wartość współbieżności. Alternatywnie, jeśli warunki sieciowe i ładunki różnią się, ustaw tę zmienną na słowo AUTO zamiast na określoną liczbę. To ustawienie powoduje, że narzędzie AzCopy zawsze uruchamia ten sam proces automatycznego dostrajania, który jest używany w testach porównawczych.
Ogranicz przepustowość danych
Użyj flagi cap-mbps w poleceniach, aby ustawić limit przepustowości danych. Na przykład następujące polecenie wznowi zadanie i ograniczy przepływność do 10 megabitów (Mb) na sekundę. Ta funkcja jest obsługiwana tylko w przypadku przekazywania lub pobierania plików, a nie kopiowania między kontami.
azcopy jobs resume <job-id> --cap-mbps 10
Optymalizowanie użycia pamięci
Ustaw zmienną AZCOPY_BUFFER_GB środowiskową, aby określić maksymalną ilość pamięci systemowej, która ma być używana przez narzędzie AzCopy do buforowania podczas pobierania i przekazywania plików. Wyrażaj tę wartość w gigabajtach (GB).
Uwaga
Śledzenie zadań zawsze zwiększa obciążenie związane z użyciem pamięci. Ilość zależy od liczby transferów w zadaniu. Bufory są największym składnikiem użycia pamięci. Możesz pomóc w kontrolowaniu nakładu pracy przy użyciu AZCOPY_BUFFER_GB polecenia , aby w przybliżeniu spełnić wymagania, ale nie ma dostępnej flagi, aby ściśle ograniczyć ogólne użycie pamięci.
Optymalizowanie synchronizacji plików
Polecenie synchronizacji identyfikuje wszystkie pliki w miejscu docelowym, a następnie porównuje nazwy plików i ostatnio zmodyfikowane znaczniki czasu przed rozpoczęciem operacji synchronizacji. Jeśli masz dużą liczbę plików, możesz zwiększyć wydajność, eliminując to przetwarzanie z góry.
Aby osiągnąć ten cel, użyj polecenia azcopy copy zamiast tego i ustaw flagę --overwrite na ifSourceNewer. Narzędzie AzCopy porównuje pliki podczas kopiowania ich bez przeprowadzania żadnych z góry skanowań i porównań. Takie podejście zapewnia przewagę wydajności w przypadkach, gdy jest wiele plików do porównania.
Polecenie azcopy copy nie usuwa plików z miejsca docelowego. Jeśli chcesz usunąć pliki w miejscu docelowym, gdy nie istnieją już w źródle, użyj polecenia azcopy sync z --delete-destination flagą ustawioną na wartość true lub prompt.
Równoległe uruchamianie zadań przy użyciu wielu klientów
Narzędzie AzCopy działa najlepiej, gdy na kliencie działa tylko jedno wystąpienie. Jeśli chcesz przesyłać pliki równolegle, użyj wielu klientów i uruchom tylko jedno wystąpienie narzędzia AzCopy na każdym z nich.