Linux için çok iş parçacıklı dosya indirme | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Linux için çok iş parçacıklı dosya indirme

Büyük bir dosya, curl veya wget gibi standart bir araçla tek bir HTTP veya FTP sunucusundan indirildiğinde, tek bir TCP bağlantısı açılır ve dosya sıralı olarak indirilir. Hızlı bir ağda bu işlem, sunucunun bağlantı başına hız sınırı, TCP slow start veya gidiş-dönüş gecikmesi nedeniyle sınırlanabilir. Paralel indirme araçları aynı kaynağa aynı anda birden fazla bağlantı açar; her bağlantı dosyanın farklı bir bayt aralığını indirir ve sonuç yerel olarak yeniden birleştirilir. Bu yöntem yalnızca sunucu HTTP range isteklerini kabul ediyorsa (HTTP 206 Partial Content yanıtı veriyorsa) çalışır; bunu destekleyen sunucularda sonuç, tek akışlı bir aracın sağladığından genellikle belirgin şekilde daha hızlı bir aktarım olur.

Bu makalede "çok iş parçacıklı indirme" ifadesi, indirme işleminin kendi içindeki iş parçacıklarından ziyade paralel bağlantılarla gerçekleştirilen bu modeli ifade eder.

Bu makalede Linux için iki yardımcı program ele alınmaktadır: Axel ve aria2.

Axel

Axel, hafif bir komut satırı indirme aracıdır. Tek bir kaynağa birden fazla bağlantı açar ve bayt aralıklarını paralel olarak indirir. HTTP, HTTPS, FTP ve FTPS protokollerini destekler ve kesintiye uğrayan indirmelere devam edebilir.

Axel kurulumu

Debian ve Ubuntu'da:

sudo apt install axel

RHEL, CentOS Stream, AlmaLinux ve Rocky Linux'ta önce EPEL'i etkinleştirin:

sudo dnf install epel-release sudo dnf install axel

Fedora'da:

sudo dnf install axel

Axel kullanımı

Temel bir indirme:

axel https://nl.lg.introserv.eu/1000MB.test

-a seçeneği kompakt bir ilerleme göstergesi sağlar:

axel -a https://nl.lg.introserv.eu/1000MB.test

Maksimum indirme hızını saniye başına bayt cinsinden -s (veya --max-speed) seçeneğiyle sınırlayabilirsiniz. Örneğin, aktarımı 500 KB/s ile sınırlandırmak için:

axel --max-speed=512000 https://nl.lg.introserv.eu/1000MB.test

Dosyayı farklı bir adla kaydetmek için -o seçeneğini kullanın:

axel -o gigabyte.test https://nl.lg.introserv.eu/1000MB.test

Paralel bağlantı sayısını -n seçeneğiyle belirleyin:

axel -n 10 https://nl.lg.introserv.eu/1000MB.test

Kısmen indirilmiş bir dosyaya -c seçeneğiyle devam edin:

axel -c https://nl.lg.introserv.eu/1000MB.test

-c kullanıldığında, aynı ada sahip bir yerel dosya zaten mevcutsa Axel indirmeye baştan başlamak yerine kaldığı yerden devam eder.

aria2

aria2, Axel ile aynı paralel indirme kullanım senaryosunu destekler ve daha geniş bir özellik seti sunar. HTTP, HTTPS, FTP, SFTP, BitTorrent ve Metalink protokollerini destekler ve aynı dosyayı aynı anda birden fazla kaynaktan alabilir. Axel gibi dosyayı segmentlere böler ve bunları paralel olarak indirir.

Temel özellikler:

  • sunucu başına bağlantı sayısı, segment boyutu ve toplam eşzamanlılık için yapılandırılabilir seçenekler
  • kesintiye uğrayan indirmelere otomatik olarak devam etme
  • sağlama toplamı tabanlı bütünlük doğrulaması
  • HTTPS ve FTPS desteği
  • yerleşik BitTorrent ve Metalink istemcileri

aria2 kurulumu

Debian ve Ubuntu'da:

sudo apt install aria2

RHEL, CentOS Stream, AlmaLinux ve Rocky Linux'ta:

sudo dnf install aria2

Fedora'da:

sudo dnf install aria2

aria2 kullanımı

Temel bir indirme:

aria2c https://nl.lg.introserv.eu/1000MB.test

Aynı dosyayı aynı anda iki aynadan indirin. aria2 her iki kaynağın bağlantılarını birleştirir ve dosyayı yerel olarak yeniden oluşturur:

aria2c "https://nl.lg.introserv.eu/1000MB.test" "https://uk.lg.introserv.eu/1000MB.test"

HTTP ve FTP kaynaklarını birlikte kullanın ve FTP kimlik bilgilerini sağlayın:

aria2c --ftp-user=<USER> --ftp-passwd=<PASSWD> "ftp://<ftpserver_ip>/<file>" "https://uk.lg.introserv.eu/1000MB.test"

Tek bir sunucuya sekiz paralel bağlantı açın ve dosyayı sekiz segmente bölün:

aria2c -x8 -s8 https://nl.lg.introserv.eu/1000MB.test

-x seçeneği (veya --max-connection-per-server), aria2'nin tek bir sunucuya açabileceği maksimum bağlantı sayısını belirler (varsayılan değer 1). -s seçeneği (veya --split), dosyanın bölünebileceği maksimum segment sayısını belirler (varsayılan değer 5). Tek bir kaynak için gerçek paralel bağlantı sayısı bu iki değerden küçük olanıdır: -x8 -s5 5 bağlantı açar, -x5 -s8 de 5 bağlantı açar. Tek bir sunucuya gerçekten 8 paralel bağlantı açmak için her iki değerin de artırılması gerekir; bu nedenle genellikle aynı değere ayarlanırlar.

-k seçeneği (veya --min-split-size), dosyanın bölünebileceği en küçük parçanın boyutunu belirler. Daha küçük değerler daha fazla paralel segment kullanılmasına olanak tanır, ancak ek yükü artırır:

aria2c -x8 -s8 -k1M https://nl.lg.introserv.eu/1000MB.test

Info

-x, -s ve -j farklı işlevlere sahiptir. -x, tek bir dosyayı indirirken bir sunucuya açılan bağlantı sayısını kontrol eder. -s, tek bir dosyanın kaç segmente bölüneceğini belirler. -j (veya --max-concurrent-downloads), aria2'nin aynı anda kaç ayrı dosya indireceğini belirler.

İki dosyayı paralel olarak indirin:

aria2c -j2 https://nl.lg.introserv.eu/1000MB.test https://uk.lg.introserv.eu/1000MB.test

Kısmen indirilmiş bir dosyaya -c seçeneğiyle devam edin:

aria2c -c https://nl.lg.introserv.eu/1000MB.test

Bir Metalink dosyası kullanıldığında aria2 aynaları otomatik olarak seçebilir, indirilen verileri Metalink'te belirtilen sağlama toplamlarına göre doğrulayabilir ve başarısız olan aynaları manuel müdahale gerektirmeden yeniden deneyebilir.

Tekrarlanan kullanımlar için aria2, dosya mevcutsa varsayılan seçenekleri ~/.aria2/aria2.conf dosyasından okur. Böylece max-connection-per-server ve split gibi değerler her çalıştırmada belirtilmek yerine bir kez bu dosyada ayarlanabilir.

Warning

Herkese açık bir mirror veya CDN'ye çok sayıda paralel bağlantı açmak, operatörün kullanım politikasını ihlal edebilir ve hız sınırlamasına veya geçici engellemelere neden olabilir. Herkese açık kaynaklarda bağlantı sayısını makul seviyede tutun (4 ila 8 bağlantı genellikle güvenli bir aralıktır); daha yüksek değerleri yalnızca buna izin verdiği bilinen altyapılarda kullanın.

Paralel indirmeler ne zaman faydalıdır?

Paralel indirmeler, darboğazın yerel disk veya genel ağ bağlantısı değil, sunucunun bağlantı başına hız sınırı ya da kaynak başına aktarım kapasitesi olduğu durumlarda en etkili sonuçları verir. Bir bağlantının bant genişliği zaten tamamen kullanılıyorsa, daha fazla bağlantı açmak toplam bant genişliğini artırmaz; yalnızca mevcut bant genişliğini yeniden dağıtır. Bazı HTTP sunucuları range isteklerini de reddeder veya tek bir istemciden gelen eşzamanlı bağlantı sayısını sınırlar. Bu durumda wget gibi tek akışlı bir araç Axel veya aria2 kadar hızlı olabilir.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA