Oggi parleremo di una raccolta di utili utility chiamata "netutils-linux" che può essere utilizzato per semplificare la risoluzione dei problemi di rete Linux e l'ottimizzazione delle prestazioni. Questa suite di utilità Linux ti aiuta ad automatizzare il processo di ottimizzazione delle prestazioni di Linux immediatamente. Netutils-linux è costituito dai seguenti strumenti:
- parte superiore della rete
- snmptop
- irqtop
- softirq-top
- Tasso di collegamento
- softnet-stat-top
- scala rss
- autorizzazioni
- massimizza-freq-cpu
- aumento dei buffer rx
- informazioni sul server
Netutils-linux - Semplifica la risoluzione dei problemi di rete Linux e l'ottimizzazione delle prestazioni
Installa Netutils-linux
Netutils-linux è sviluppato utilizzando il linguaggio di programmazione Python. Quindi, può essere facilmente installato utilizzando pip .
Su Arch Linux e i suoi derivati, esegui il seguente comando per installare pip:
sudo pacman -S python-pip
Su Debian, Ubuntu, Linux Mint:
sudo apt-get install python-pip
Su RHEL, Fedora, CentOS:
sudo yum install python-pip
Oppure,
sudo dnf install python-pip
Su SUSE/openSUSE:
sudo zypper install python-pip
Dopo aver installato PIP, esegui il comando seguente per installare netutils-linux :
sudo pip install netutils-linux
L'output di esempio sarebbe:
Collecting netutils-linux Downloading netutils-linux-2.3.1.tar.gz Collecting pyyaml (from netutils-linux) Downloading PyYAML-3.12.tar.gz (253kB) 100% |████████████████████████████████| 256kB 221kB/s Collecting ipaddress (from netutils-linux) Downloading ipaddress-1.0.18-py2-none-any.whl Collecting six (from netutils-linux) Downloading six-1.10.0-py2.py3-none-any.whl Collecting colorama (from netutils-linux) Downloading colorama-0.3.9-py2.py3-none-any.whl Collecting prettytable (from netutils-linux) Downloading prettytable-0.7.2.zip Requirement already satisfied (use --upgrade to upgrade): argparse in /usr/lib/python2.7 (from netutils-linux) Installing collected packages: pyyaml, ipaddress, six, colorama, prettytable, netutils-linux Running setup.py install for pyyaml ... done Running setup.py install for prettytable ... done Running setup.py install for netutils-linux ... done Successfully installed colorama-0.3.9 ipaddress-1.0.18 netutils-linux-2.3.1 prettytable-0.7.2 pyyaml-3.12 six-1.10.0
Utilizzo
Come ho menzionato nella sezione introduttiva, Netutils-linux contiene una serie di utilità appositamente progettate per la risoluzione dei problemi di rete e l'ottimizzazione delle prestazioni. Tutte le utilità sono classificate in tre sezioni, vale a dire:
- Monitoraggio
- Regolazione
- Hardware e relativa valutazione della configurazione
1. Monitoraggio
Tutti questi top -come gli strumenti che rientrano nella sezione di monitoraggio non richiedono privilegi di root o sudo. Puoi usarli come utente normale.
parte superiore della rete
Questa utility ti consente di monitorare gli interrupt, gli interrupt soft, le statistiche di elaborazione di rete per dispositivi e CPU. Per eseguire questa utilità, inserisci:
network-top
Ecco l'output di esempio dal mio server LTS Ubuntu 16.04.
Per uscire da questa utilità, premi CTRL-C .
Snmptop
È un /proc/net/smmp di base osservatore di file.
Per eseguire questa utilità, immetti il seguente comando:
snmptop
irqtop
Questa utilità mostra una frequenza di interruzioni basata su /proc/interrupts file del tuo sistema Linux.
Esegui questa utility usando il comando:
irqtop
Softirq-top
Ti mostra una velocità di ricezione e trasmissione di pacchetti basata su /proc/softirqs file.
Tasso di collegamento
Mostra quanti pacchetti/byte riceve/trasmette un'interfaccia di rete e quanti errori si sono verificati in base a /sys/class/net/XXX/statistic/YYY file.
Softnet-stat-top
Mostra varie statistiche sull'elaborazione dei pacchetti per CPU della tua macchina Linux.
2. Sintonizzazione
Devi eseguire l'utente root o sudo per eseguire questi strumenti.
ss-ladder
Imposta automaticamente smp_affinity_list per l'IRQ delle code NIC rx/tx che di solito funzionano su CPU0 immediatamente.
rss-ladder enp0s3 0
Autorps
Abilita l'RPS su tutte le CPU disponibili del nodo NUMA locale per la NIC per tutte le code rx della NIC. Va bene per schede di interfaccia di rete economiche.
Esempio:
$ sudo autorps enp0s3 Using mask '1' for enp0s3-rx-0
massimizza-freq-cpu
Questa utility imposta ogni modalità del regolatore di ridimensionamento della CPU sulle prestazioni e imposta il valore di ridimensionamento massimo per il valore di ridimensionamento minimo. Così puoi usare tutta la potenza del tuo processore. È abbastanza utile per i sistemi sensibili alla latenza.
aumento dei buffer rx
Questa utility trova e imposta un valore di compromesso tra evitare pacchetti persi/persi e mantenere una latenza bassa.
Esempio:
$ sudo ethtool -g enp0s3 Ring parameters for enp0s3: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256
$ sudo rx-buffers-increase enp0s3 run: ethtool -G enp0s3 rx 2048
$ sudo rx-buffers-increase enp0s3 enp0s3's rx ring buffer already has fine size.
$ sudo ethtool -g enp0s3 Ring parameters for enp0s3: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 2048 RX Mini: 0 RX Jumbo: 0 TX: 256
Hardware e relativa valutazione della configurazione
informazioni sul server
Questa utilità è simile a lshw comando.
$ sudo server-info show cpu: info: Architecture: x86_64 BogoMIPS: 4589 Byte Order: Little Endian CPU MHz: 2294 CPU family: 6 CPU op-mode(s): 32-bit, 64-bit CPU(s): 1 Core(s) per socket: 1 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt xsave avx hypervisor lahf_lm Hypervisor vendor: KVM L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K Model: 42 Model name: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz NUMA node(s): 1 NUMA node0 CPU(s): 0 On-line CPU(s) list: 0 Socket(s): 1 Stepping: 7 Thread(s) per core: 1 Vendor ID: GenuineIntel Virtualization type: full layout: '0': '0' disk: sda: model: 'VBOX HARDDISK ' size: 21474836480 type: HDD sr0: model: CD-ROM memory: MemFree: 254244 MemTotal: 1016264 SwapFree: 1046028 SwapTotal: 1048572 net: enp0s3: buffers: cur: 256 max: 4096 conf: ip: '' vlan: false driver: driver: e1000 version: 7.3.21-k8-NAPI queues: own: [] rx: [] rxtx: [] shared: - 19-fasteoi ehci_hcd:usb1, enp0s3 tx: [] unknown: []
L'utilità Informazioni sul server può anche valutare l'hardware e le sue funzionalità su una scala da 1 a 10.
$ sudo server-info rate cpu: BogoMIPS: 2 CPU MHz: 2 CPU(s): 1 Core(s) per socket: 1 L3 cache: 2 Socket(s): 1 Thread(s) per core: 10 Vendor ID: 10 disk: sda: size: 1 type: 1 sr0: size: 1 type: 2 memory: MemTotal: 1 SwapTotal: 2 net: enp0s3: buffers: cur: 1 max: 10 driver: 3 queues: 1 system: Hypervisor vendor: 1 Virtualization type: 1
E per ora è tutto gente. Altre cose buone in arrivo. Resta sintonizzato!
Ciao!!