25
2025
06
Linux veth pair 详解
Linux veth pair 详解veth pair是成对出现的一种虚拟网络设备接口,一端连着网络协议栈,一端彼此相连。如下图所示:由于它的这个特性,常常被用于构建虚拟网络拓扑。例如连接两个不同的网络命名空间(netns),连接docker容器,连接网桥(Bridge)等,其中一个很常见的案例就是OpenStack Neutron底层用它来构建非常复杂的网络拓扑。如何使用?创建一对vethip link add <veth name>&nbs
作者:hqy | 分类:Linux | 浏览:41 | 评论:0
25
2025
06
Linux Network Namespace (netns) 详解
Network Namespace (以下简称netns)是Linux内核提供的一项实现网络隔离的功能,它能隔离多个不同的网络空间,并且各自拥有独立的网络协议栈,这其中便包括了网络接口(网卡),路由表,iptables规则等。例如大名鼎鼎的docker便是基于netns实现的网络隔离,今天我们就来手动实验一下netns的隔离特性。使用方式使用ip netns help查看使用帮助Usage: ip netns list
作者:hqy | 分类:Linux | 浏览:40 | 评论:0
25
2025
06
Linux 内核中近期的网络性能提升
Recent network performance enhancements in the Linux kernel从 Linux 6.x 内核开始,有许多用于提升网络性能的新选项,这些内容在我们 2024 年 INDIS 研讨会1论文《近期影响 TCP 吞吐量的 Linux 改进:来自科研与教育网络的见解》2中有详细介绍。1 https://scinet.supercomputing.org/community/indis/2 https://fasterdata.es.
作者:hqy | 分类:Linux | 浏览:46 | 评论:0
25
2025
06
网络主机性能调优——CPU调优
CPU Tuning本页面包含有关调优和监控 CPU 核心使用情况的信息。要实现超过 10Gbps 的速度,通常需要进行这些操作。另请参阅 100G 调优页面,其中包含有关设置 CPU 调控器和进行中断请求(IRQ)绑定的信息。确定 CPU 瓶颈如果你未达到预期的性能,可以使用 mpstat -P ALL 1 命令来确定是否是 CPU 限制了性能。例如,以下是使用建议的命令行选项进行的 nuttcp UDP 测试,结果显示速度为 5.9 Gbps:请注意,
作者:hqy | 分类:Linux | 浏览:39 | 评论:0
25
2025
06
数据包调速
Packet Pacing当从速度较快的主机向速度较慢的主机发送数据时,很容易使接收方不堪重负,从而导致数据包丢失和 TCP 拥塞控制机制起作用(即 TCP 降速)。类似的问题也会在以下情况中出现:10G 主机向低于 10G 的虚拟电路发送数据;40G 主机向 10G 主机发送数据;CPU 性能较强的 40G/100G 主机向 CPU 性能较弱的 40G/100G 主机发送数据等等。当使用采用并行流的数据传输工具时,这些问题会更加明显。在一些长路径(往返时延为 50-80 毫秒)上,我们发现启用
作者:hqy | 分类:Linux | 浏览:43 | 评论:0
25
2025
06
UDP 性能调优
UDP Tuning若不进行一些调优,UDP 也无法达到完整的 10Gbps(或更高)速率。重要的因素如下:使用巨型帧:使用 9K 最大传输单元(MTU)时,性能将提升 4 - 5 倍。数据包大小:最佳性能对应的数据包大小为 MTU 大小减去数据包头部大小。例如,对于 9000 字节的 MTU,IPv4 使用 8972 字节,IPv6 使用 8952 字节。套接字缓冲区大小:对于 UDP,缓冲区大小与往返时间(RTT)的关系不像 TCP 那样紧密,但默认值仍然不够大。在大多数情况下,将套接字缓冲
作者:hqy | 分类:Linux | 浏览:59 | 评论:0
25
2025
06
100G 网络速率调优—其他调优
Other Tuning本页面汇总了其他一些 100G 网络的调优选项。在 ESnet 硬件上进行的测试中,这些设置并非总是能起到优化效果,尤其是在局域网环境下。但我们将其列出,以便你可以自行进行试验。其中一些设置可能在较旧的操作系统中会有帮助。如果你使用这些设置取得了效果,请告知我们结果。我们建议将这些设置保持为默认值,而且在较新版本的 Linux 系统中,这些设置似乎都不会对性能产生影响:中断合并(ethtool -c)默认情况下应处于开启状态,无需更改 rx-usecs 
作者:hqy | 分类:Linux | 浏览:35 | 评论:0
25
2025
06
100G 网络速率调优—100G 基准测试
100G Benchmarking在进行 100G(或更高速率)的基准测试时,你会希望能够得到稳定一致的测试结果。在 100G 的速度下,接收端很可能会受到 CPU 性能的限制,而且每个核心的性能表现都会略有差异(如这篇论文中所述)。因此,不仅需要明确指定应用程序所使用的核心,还需要指定中断请求(IRQ)所使用的核心。如果不这样做,很有可能会出现两条数据流的中断请求被分配到同一个核心上的情况,从而极大地影响性能。论文链接: https://www.es.net/assets/pubs_preso
作者:hqy | 分类:Linux | 浏览:34 | 评论:0
25
2025
06
100G 网络速率调优—网卡设备驱动调优
NIC Device Driver Tuning网卡设备驱动通常,Linux 发行版自带的设备驱动版本较旧,可能不支持所有最新功能。本页面提供了有关更新设备驱动的信息。要查看当前驱动版本,请执行以下命令:ethtool -i ethNethtool -i ethN 是 Linux 系统中用于 查询指定网卡接口(ethN)驱动信息 的命令。该命令会输出网卡的驱动名称、版本、固件版本、总线位置等关键信息,帮助用户诊断驱动兼容性或硬件状态问题. 例如 :ethtool -i eth0mlx5_core
作者:hqy | 分类:Linux | 浏览:63 | 评论:0
25
2025
06
100G 网络速率调优-启动设置(GRUB)
Boot Settings (Grub)GRUB 设置:IOMMU(输入 - 输出内存管理)包括迈络思/英伟达 100G 网卡在内的一些硬件支持 IOMMU。虽然 IOMMU 在虚拟化环境中尤为重要,但在非虚拟化主机上,我们也看到并行流吞吐量从 80 Gbps 提升到了 180 Gbps。我们建议任何配备 100 Gbps 及以上网卡的主机都启用此功能。必须在 GRUB 中配置 IOMMU 支持。在 /etc/default/grub 文件中添加以下行:GRUB_CMDLIN
作者:hqy | 分类:Linux | 浏览:30 | 评论:0
25
2025
06
100G 网络速率调优-CPU调速器
cpu governor默认情况下,Linux 使用“节能(powersave)”CPU 调速器。在 100G 主机上,我们发现将调速器改为“性能(performance)”后,吞吐量可提高达 30%。设置调速器的命令如下:对于大多数较新的 Linux 发行版:cpupower frequency-set -g performancecpupower 命令说明:https://linux.die.net/man/1/cpupower对于一些较旧的 Debian/Ubuntu 系统:cpufreq
作者:hqy | 分类:Linux | 浏览:40 | 评论:0
25
2025
06
100G 网络速率调优-中断绑定
Interrupt Binding要在非统一内存访问(NUMA)架构系统(例如:英特尔至强融核/至强E5主板)上充分发挥单流性能(包括 TCP 和 UDP),你需要关注所使用的 CPU 插槽和核心。从右侧的图中可以看到,网卡的 PCI 插槽仅直接连接到两个 CPU 插槽中的一个。如果中断或应用程序所在的插槽不正确,会导致性能大幅下降,因为一旦出现这种情况,所有数据都必须通过快速通道互联(QPI)总线传输。在配备 40G/100G PCI 第三代接口的主机上,如果使用了错误 CPU 插槽上的核心,
作者:hqy | 分类:Linux | 浏览:30 | 评论:0
25
2025
06
网络主机性能调优背景知识介绍
背景信息概述对主机进行合理调优可使性能提升高达 100 倍。以下是具体原因。TCP 缓冲区大小设置TCP 使用所谓的“拥塞窗口”(Congestion Window,简称 CWND)来确定一次可以发送多少个数据包。拥塞窗口越大,吞吐量就越高。TCP 的“慢启动(slow start)”和“拥塞避免(congestion avoidance)”算法决定了拥塞窗口的大小。最大拥塞窗口与内核为每个套接字分配的缓冲区空间大小有关。对于每个套接字,缓冲区大小都有一个默认值,在打开套接字之前,程序可以通过系
作者:hqy | 分类:Linux | 浏览:39 | 评论:0
25
2025
06
Linux 网络调优简介
Linux Tuning本页面包含一份快速参考指南,适用于以 1Gbps 或更高速度连接的用于数据传输的 Linux 主机。请注意,此处描述的大多数调优设置实际上会降低连接速率低于 1Gbps 的主机的性能,大多数家庭用户的主机就属于这种情况。请注意,本页面的设置并非旨在通过单一流实现全 10G 的性能。这些设置假定你使用的是支持并行流的工具,或者有多个数据传输并行进行,并且希望各流之间能公平共享资源。因此,最大设置值比支持单一流所需的值小 2 到 4 倍。例如,在延迟为 100 毫秒的网络上进
作者:hqy | 分类:Linux | 浏览:39 | 评论:0
25
2025
06
测试/测量主机调优
Test/Measurement Host Tuning以下是一份快速参考指南,用于对运行 iperf、iperf3 或 nuttcp 等工具的 Linux 测试/测量主机(如 perfSONAR 主机)进行调优设置。请注意,我们假设测量工具正尝试使用 perfSONAR pscheduler 工具执行序列化单流 TCP 测试。这一假设意味着我们增加了基础 TCP 套接字大小以支持更大的内存分配,并且并行流的使用不像 Globus 等工具那样常见。若想了解合适的套接字大小,你可以使用带宽延迟积(
作者:hqy | 分类:Linux | 浏览:31 | 评论:0
25
2025
06
完全私有化部署开源网站防火墙!
项目简介SamWaf是个开源的Web应用防火墙(简称WAF),专为小公司、工作室和个人网站量身定制,专门帮你的网站挡住那些乱七八糟的攻击,比如SQL注入、XSS跨站脚本啥的。这项目是咱们国内开发者搞出来的,托管在Gitee上,代码敞亮亮地摆那儿,想研究想改随便你折腾。它的目标很简单:让小网站也能用上靠谱的安全防护,不用花大价钱请“保镖”。功能特性:这货能干啥?轻量级:和那些基于nginx、apache、iis的插件式防火墙不同,SamWaf不依赖任何第三方服务,独立运行,轻装上阵,让你的网站运行
作者:hqy | 分类:Linux | 浏览:64 | 评论:0
25
2025
06
可绕过TCP/UDP流量检测!一种冷门协议的后门传输通道
apt install socat -ySCTP协议介绍SCTP (Stream Control Transmission Protocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的, 和TCP不同的是:TCP是以字节为单位传输, 而SCTP是以数据块为单位传输。SCTP协议在Linux上的应用主要为电信行业提供可靠通信。虽然它有合法用途,但
作者:hqy | 分类:Linux | 浏览:33 | 评论:0
25
2025
06
sort 命令里那些不为人知的隐秘用法大揭秘
在精彩纷呈的Linux世界中,sort命令就像一把神奇的“钥匙”,能够帮助我们轻松解决文本文件中的行排序问题。现在,让我们一起开启这场探索sort命令奥秘的旅程吧!基础运用的“敲门砖”sort 命令的基本语法非常简单易记,如下所示。如果你在使用过程中遇到任何疑问,也可以通过输入 --help 来查看详细的帮助文档哦。sort [选项] [文件] 这里,[选项]可要看好了,它可不是必须的哦,有需要的时候能帮我们指定排序行为;[文件]就很直白啦,就是我们要排序
作者:hqy | 分类:Linux | 浏览:37 | 评论:0
25
2025
06
同为硬件信息查看“神器”,lshw 和 dmidecode 竟有这么多不同
在Linux中,了解硬件信息的两个重要工具是lshw和dmidecode。很多人不清楚它们的区别。今天,我们将解释这两个工具的不同之处,帮助你更好地选择使用哪一个。情报出处大不同dmidecode就像是一位“直接挖掘者”,它直接从系统的DMI(桌面管理接口)表中“掏”出硬件信息。这个DMI表可厉害啦,硬件制造商、型号、序列号等详细内容都在里面藏着。而lshw呢,是个“多渠道收集者”,它不仅参考DMI表,还会从/proc目录下的文件里抓取信息。这好比一个专注一处找线索,一个广泛收集各处消息,自然得
作者:hqy | 分类:Linux | 浏览:30 | 评论:0
25
2025
06
网络质量检测脚本
有时候,我们上网时会遇到一些麻烦,比如因为网络限制、地区封锁或IP被拉黑,导致没法访问某些网站,像ChatGPT、Netflix或者TikTok。还有时候,我们需要知道某个服务器的25端口是否开放,能不能用来搭建邮箱服务。假如你刚买了一台新服务器,想要快速了解这台服务器的IP地址能否正常访问各种服务,有没有什么简单的方法可以一键检测所有这些信息呢?答案是必须有项目介绍NetQuality是一个贴心的网络质量检测小助手,致力于为您提供详尽且易于理解的网络性能分析。无论您使用的是Ubuntu、Deb
作者:hqy | 分类:Linux | 浏览:70 | 评论:0