GNU/Linux >> Linux Esercitazione >  >> Linux

In che modo Linux alloca la larghezza di banda tra i processi?

Come la maggior parte dei problemi di prestazioni, è complicato. La quantità di larghezza di banda ottenuta da ciascuna attività è una complessa interazione tra molte cose, a diversi livelli dello stack di rete. Anche senza modellare. Un elenco incompleto:

  • Pianificatore della CPU per quando le attività (e i gestori di interrupt del driver) possono accedere alla CPU
  • Quanto velocemente le attività ottengono i propri dati, possibilmente limitate da colli di bottiglia o contese
  • Quale disciplina di accodamento è in uso, essenzialmente uno scheduler di pacchetti
  • Dettagli sui driver, come il numero di code TX hardware e il modo in cui selezionano i flussi
  • Comportamento del protocollo TCP, se un flusso raggiunge il controllo della congestione, potrebbe rimanere lento mentre la larghezza di banda è limitata
  • Tutte le precedenti considerazioni per i sistemi remoti che ricevono i flussi
    • Se tutte le tue connessioni non sono dirette allo stesso destinatario, l'altro end potrebbe avere un impatto maggiore di your fine

Molti di questi non stanno ottimizzando per la "correttezza" della larghezza di banda uguale, ma altri criteri. Il controllo della congestione TCP preferirebbe avere un po' di goodput piuttosto che subire un collasso congestizio.

E non dimenticare anche che probabilmente lo sei non l'unico della rete in un dato momento, quindi devi anche includere router, switch, ecc. tra "qui" e "là".

Se questa è più di una curiosità, una soluzione il più veloce possibile è ottenere più larghezza di banda.

Oppure, eseguire QoS, modellare o limitare le applicazioni può impostare quote per un comportamento complessivo migliore, qualunque sia il mezzo migliore. Ma questo non è più il più veloce possibile, scegli i vincitori e i perdenti in base alla politica.


Linux
  1. Come eliminare i processi in esecuzione in Linux

  2. Come ottenere la dimensione della directory in Linux

  3. Come elencare i processi collegati a un segmento di memoria condivisa in Linux?

  4. Come ottenere la differenza (solo aggiunte) tra due file in Linux

  5. Come ottenere netmask da bash?

Come uccidere i processi Zombie in Linux

Come ottenere il tuo indirizzo IP su Linux

Come funziona la memoria di scambio in Linux?

Come iniziare con Arch Linux

Come ottenere un elenco di collegamenti simbolici su Linux

Come funziona il display di Linux?