GNU/Linux >> Znalost Linux >  >> Linux

Jak Linux přiděluje šířku pásma mezi procesy?

Jako většina problémů s výkonem je to složité. Jak velkou šířku pásma každý úkol získá, je složitá interakce mezi mnoha věcmi na různých vrstvách síťového zásobníku. I bez tvarování. Neúplný seznam:

  • Plánovač CPU, kdy se úlohy (a obslužné programy přerušení ovladače) mohou dostat na CPU
  • Jak rychle úlohy získávají svá data, což může být omezeno úzkými místy nebo spory
  • Jaká disciplína řazení do front se používá, v podstatě plánovač paketů
  • Podrobnosti o ovladači, jako je počet hardwarových front TX a způsob, jakým vybírají toky
  • Chování protokolu TCP, pokud jeden tok náhodou narazí na řízení přetížení, může zůstat pomalý při omezené šířce pásma
  • Všechny výše uvedené úvahy pro vzdálené systémy přijímající toky
    • Pokud všechna vaše připojení nesměřují ke stejnému příjemci, jinému konec má možná větší dopad než váš konec

Mnoho z nich se neoptimalizuje pro „spravedlnost“ stejné šířky pásma, ale jiná kritéria. Řízení přetížení TCP by raději mělo malý přínos, než aby utrpělo kongestivní kolaps.

A nezapomeňte, že pravděpodobně jste není v daném okamžiku jediná v síti – takže musíte také zahrnout směrovače, přepínače atd. mezi „zde“ a „tam“.

Pokud je to více než jen kuriozita, řešením, jak co nejrychleji dosáhnout, je získat větší šířku pásma.

Nebo provádění QoS, tvarování nebo omezování aplikací může nastavit kvóty pro lepší celkové chování, ať už to znamená cokoliv. Ale to už není tak rychlé, jak je to možné, vítěze a poražené vybíráte podle zásad.


Linux
  1. Linux – Jak nakonfigurovat spravedlivé sdílení šířky pásma mezi Cgroups?

  2. Jak získat velikost adresáře v Linuxu

  3. Jak funguje debugger v Linuxu?

  1. Jak zabít běžící procesy v Linuxu

  2. Jak vypsat seznam procesů připojených k segmentu sdílené paměti v linuxu?

  3. Jak získat masku sítě z bash?

  1. Jak získat rozdíl (pouze doplňky) mezi dvěma soubory v linuxu

  2. Jak získat název hostitele z IP (Linux)?

  3. Jak Linux rozlišuje vlákna od podřízených procesů?