Throughput
Verim
- Türkçe karşılığı
- iş çıkarma hızı
- Okunuşu
- tru put
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Throughput (verim), bir sistemin birim zamanda gerçekte işlediği veri ya da iş miktarıdır; ağda saniyedeki megabit, sunucuda saniyedeki istek sayısı gibi.
Throughput nedir?
Throughput, gerçekte elde ettiğinizdir. Bir ağ bağlantısı 1 Gbps bant genişliği sunabilir, ama üzerinden yapılan bir dosya aktarımı protokol yükü, tıkanıklık, paket kaybı ya da diğer uçtaki yavaş bir sunucu yüzünden yalnızca 600 Mbps'ye ulaşabilir. Sunucularda ve veritabanlarında throughput tamamlanan işle ölçülür: saniyedeki istekler, transaction'lar ya da mesajlar.
Gecikmeyle yakından bağlantılıdır. TCP'de havada olan, henüz onaylanmamış veri miktarı pencere boyutuyla sınırlıdır; bu yüzden uzun mesafeli tek bir bağlantı hızlı bir hatta bile yavaş olabilir: throughput aşağı yukarı pencere boyutunun gidiş-dönüş süresine bölümüdür. Paralel bağlantılar, daha büyük pencereler ve daha iyi tıkanıklık kontrolü onu artırır.
Sistem tasarımında throughput, gecikme ve hata oranıyla birlikte ana kapasite ölçülerinden biridir. Yük testleri, gecikme tırmanırken throughput artmayı bırakana kadar trafiği artırır; bu da darboğazı, yani CPU'yu, bir veritabanı kilidini, bir connection pool'u ya da ağı ortaya çıkarır. Toplu işleme (batching), önbellekleme ve yatay ölçekleme onu artırmanın tipik yollarıdır.
Sık yapılan bir yanlış, throughput, bant genişliği ve gecikmenin aynı şey olduğunu düşünmektir. Bant genişliği bir hattın en yüksek kapasitesi, throughput gerçekte ulaşılan hız, gecikme ise tek bir veri parçasının ulaşma süresidir. Bir sistemin aynı anda hem throughput'u hem gecikmesi yüksek olabilir; sabit disklerle dolu bir kamyon gibi.
Önemli noktalar
- Throughput, birim zamanda gerçekte işlenen iş ya da veridir.
- Ağlar onu saniyedeki bitle, sunucular saniyedeki istekle ölçer.
- Ek yük ve tıkanıklık yüzünden genellikle bant genişliğinden düşüktür.
- TCP throughput'u, pencere boyutunun gidiş-dönüş süresine bölümüyle sınırlıdır.
- Bant genişliği kapasite, throughput ulaşılan hız, gecikme bekleme süresidir.
Örnek
# Network: run iperf3 -s on the server, then from the client
iperf3 -c 10.0.0.5 -t 10
# [ ID] Interval Transfer Bitrate
# [ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec
# Web server: 50 concurrent connections for 30 seconds
wrk -t4 -c50 -d30s https://localhost:8443/api/health
# Requests/sec: 12873.41 ← throughput
# Latency avg: 3.85msSık sorulan sorular
Bant genişliği ile throughput arasındaki fark nedir?
Bant genişliği, bir hattın en fazla ne kadar veri taşıyabileceğidir. Throughput ise pratikte gerçekten ne kadarının geçtiğidir; ek yük, tıkanıklık, hatalar ve iki uçtaki cihazların sınırları onu düşürür.
Gecikme ile throughput arasındaki fark nedir?
Gecikme, tek bir isteğin ya da paketin aldığı süredir. Throughput ise saniyede kaç isteğin ya da ne kadar verinin işlendiğidir. Birini iyileştirmek diğerini otomatik olarak iyileştirmez.
Bir sunucunun throughput'unu nasıl artırırım?
Önce yük testleri ve profilleme ile darboğazı bulun, sonra onu ortadan kaldırın: tekrarlanan işi önbelleğe alın, veritabanı yazmalarını toplu yapın, connection pool'ları ayarlayın, asenkron I/O kullanın ya da bir yük dengeleyicinin arkasına daha fazla örnek ekleyin.
Sık karşılaştırılanlar
İlgili sayfalar
- Bant GenişliğiAğlar, s. 4Bant genişliği, bir ağ bağlantısının saniyede taşıyabileceği en yüksek veri miktarıdır; genellikle saniyedeki megabit ya da gigabit (Mbps, Gbps) ile ölçülür.
- GecikmeAğlar, s. 9Gecikme, bir istek ile yanıtın başlaması arasında geçen süredir; genellikle milisaniyeyle ölçülür ve bir uygulamanın ne kadar hızlı hissettirdiğini belirler.
- Yük TestiTest ve Kalite, s. 36Yük testi, bir sistemin beklenen trafik altında nasıl davrandığını ölçmek için aynı anda çok sayıda kullanıcıyı ya da isteği simüle eden performans testidir.
- ÖlçeklenebilirlikYazılım Mimarisi, s. 30Ölçeklenebilirlik, bir sistemin daha fazla kullanıcı ya da veri gibi artan iş yükünü, kaynak ekleyerek performansı düşmeden karşılayabilme yeteneğidir.
- TCPAğlar, s. 28TCP, bir bağlantı kurup kaybolan verileri yeniden göndererek iki program arasında veriyi güvenilir ve sıralı biçimde ileten temel bir internet protokolüdür.
- PaketAğlar, s. 20Paket, bir ağ üzerinden gönderilen küçük ve biçimlendirilmiş bir veri birimidir; adresleme bilgisi taşıyan bir başlık ile asıl veriyi taşıyan bir yükten oluşur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin