ECS: Zapis dużych plików kończy się niepowodzeniem z 500 błędami dla protokołu S3
Summary: Zapisywanie dużych plików kończy się niepowodzeniem z 500 błędami dla protokołu S3.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Zapisywanie dużych plików (wielu GB lub większych) przy użyciu protokołu S3 kończy się niepowodzeniem z błędami 500.
Cause
Używanie "HTTP PUT" lub "HTTPS PUT" do zapisywania plików w ECS. Polecenie S3 PUT nie dodaje obiektu częściowo, żądanie jest udanym lub nieudanym zapisem (wszystko lub nic).
W ramach operacji typu "wszystko albo nic" każde zakłócenie podczas przesyłania danych dużego pliku powoduje całkowite niepowodzenie tego zapisu. Jedynym zasobem w przypadku tego niepowodzenia jest ponowienie próby całej operacji zapisu z nadzieją, że zakończy się ona powodzeniem przy następnej próbie.
W ramach operacji typu "wszystko albo nic" każde zakłócenie podczas przesyłania danych dużego pliku powoduje całkowite niepowodzenie tego zapisu. Jedynym zasobem w przypadku tego niepowodzenia jest ponowienie próby całej operacji zapisu z nadzieją, że zakończy się ona powodzeniem przy następnej próbie.
Resolution
W przypadku dużych plików (GB lub większych) zaleca się użycie funkcji Multi Part Uploads (MPU) zamiast operacji PUT. Zalecenie to ma na celu uniknięcie długich czasów ukończenia zapisu (100 MB lub więcej, zgodnie z najlepszymi praktykami AWS).
Przykład:
Plik o rozmiarze 80 GB zostanie podzielony na fragmenty, a każdy fragment jest wysyłany do ECS. Jeśli przesłanie którejkolwiek z części nie powiedzie się, ponowiona zostanie tylko próba przesłania pojedynczej części, a nie całego obiektu.
Oczekuje się, że wydajność MPU będzie lepsza niż pojedynczego dużego PUT, ponieważ operacje MPU mogą być wielowątkowe. W rezultacie, użycie MPU lepiej wykorzystuje wiele połączeń i przepustowość. Oznacza to, że można wysłać więcej niż jedną część jednocześnie, co poprawia ogólną wydajność przy zapisie dużych plików.
Przykład:
Plik o rozmiarze 80 GB zostanie podzielony na fragmenty, a każdy fragment jest wysyłany do ECS. Jeśli przesłanie którejkolwiek z części nie powiedzie się, ponowiona zostanie tylko próba przesłania pojedynczej części, a nie całego obiektu.
Oczekuje się, że wydajność MPU będzie lepsza niż pojedynczego dużego PUT, ponieważ operacje MPU mogą być wielowątkowe. W rezultacie, użycie MPU lepiej wykorzystuje wiele połączeń i przepustowość. Oznacza to, że można wysłać więcej niż jedną część jednocześnie, co poprawia ogólną wydajność przy zapisie dużych plików.
Additional Information
Zasoby dla deweloperów aplikacji przechodzących z PUT na użycie MPU:
TransferManager (AWS SDK for Java — 1.12.588) (amazon.com)
Omówienie MPU AWS: (zawiera najlepsze praktyki dotyczące MPU)
Przesyłanie i kopiowanie obiektów przy użyciu przesyłania wieloczęściowego - Amazon Simple Storage Service
Affected Products
ECS ApplianceProducts
ECS ApplianceArticle Properties
Article Number: 000048288
Article Type: Solution
Last Modified: 08 Sep 2025
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.