一个用于简化Linux网络故障排除和性能调整的实用程序集合

时间:2020-03-21 11:47:43  来源:igfitidea点击:

今天,我们将讨论一个名为"Netutils-Linux"的有用实用程序的集合,可用于简化Linux网络故障排除和性能调整。
此套件的Linux Utills可将Linux性能调整过程自动开箱即用。
Netutils-Linux由以下工具组成:

  • network-top
  • snmptop
  • irqtop
  • softirq-top
  • link-rate
  • softnet-stat-top
  • rss-ladder
  • autorps
  • maximize-cpu-freq
  • rx-buffers-increase
  • server-info

Netutils-Linux - 简化Linux网络故障排除和性能调整

安装Netutils-Linux

Netutils-Linux是使用Python编程语言开发的。
因此,可以使用pip轻松安装它。

在Arch Linux及其衍生产品上,运行以下命令以安装PIP:

sudo pacman -S python-pip

在Debian,Ubuntu,Linux Mint:

sudo apt-get install python-pip

在Rhel,Fedora,Centos:

sudo yum install python-pip

或者,

sudo dnf install python-pip

在SUSE/OpenSUSE上:

sudo zypper install python-pip

安装PIP后,运行以下命令以安装Netutils-Linux:

sudo pip install netutils-linux

示例输出将是:

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

用法

就像我在介绍部分中提到的那样,Netutils-Linux包含一堆专门为网络故障排除和性能调整目的而设计的工具。
所有公用事业都分为三个部分,即:

  • 监测
  • 优化
  • 硬件及其配置等级

1.监测

在监控部分下落下的所有这些顶级工具都不需要root或者sudo权限。
我们可以使用它们作为普通用户。

network-top

此实用程序允许我们监控设备和CPU的中断,软中断,网络处理统计数据。
要运行此实用程序,请输入:

network-top

这是我的Ubuntu 16.04 LTS服务器的示例输出。

要退出此实用程序,请按Ctrl-C。

Snmptop

它是一个基本/proc/net/smmp文件观察者。

要运行此实用程序,请输入以下命令:

snmptop

irqtop

此实用程序向我们展示了基于/proc /中断文件的中断速率。

使用命令运行此实用程序:

irqtop

Softirq-top

它显示了基于/proc/softirqs文件接收和发送数据包的速率。

Link-rate

它显示了网络接口收到/发送的数据包/字节数以及基于/sys/class/net/xxx /统计/yyy文件发生了多少个错误。

Softnet-stat-top

它显示了Linux框的每个CPU数据包处理的各种统计信息。

2.优化

我们必须root或者sudo用户运行这些工具。

rss-ladder

它会自动为NIC RX/TX队列的IRQ设置SMP_Affinity_List,该队列通常会在框中开发CPU0。

rss-ladder enp0s3 0

Autorps

它为所有NIC的RX队列提供了NIC的NIC的NIMA节点的所有可用CPU的RPS。
它对便宜的网络接口卡是好的。

例子:

$sudo autorps enp0s3
 Using mask '1' for enp0s3-rx-0

maximize-cpu-freq

此实用程序将每个CPU缩放调速模式设置为性能并设置最大缩放值的最大缩放值。
因此,我们可以使用处理器的所有电源。
对于潜伏的系统来说非常有用。

rx-buffers-increase

此实用程序在避免丢弃/缺少的PKT和保持延迟之间找到并设置折衷值。

例子:

$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

硬件及其配置等级

server-info

此实用程序类似于lshw命令。

$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: []

Server-Info实用程序还可以在1-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