您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

物理服务器网络性能优化

时间:2023-07-04 13:50:26  来源:匠心独运维妙维效  作者:

#01、基础知识

中断本质是一种电信号,由硬件产生,并直接送到中断控制器,然后再由中断控制器向 CPU发送信号。常见的中断控制器有两种:可编程中断控制器(8259A)和高级可编程中断控制器(APIC),8259A只适合单CPU的情况,高级可编程中断控制器(APIC)更能充分发挥多CPU多核的SMP体系(Symmetric Multi-Processor)优势,把中断传递给每个CPU以便更好实现并行和性能提高。同时,linux kernel 2.4以后的版本支持通过SMP IRQ Affinity实现把不同硬件中断请求(IRQs)分配到特定的CPU上。

SMP IRQ affinity允许系统限制或者重新分配服务器的工作负载, 从而让服务器更有效的工作。以网卡中断为例,在没有设置SMP IRQ affinity时, 所有网卡中断都关联到CPU0, 这导致了CPU0负载过高,而无法有效快速地处理网络数据包,容易产生性能瓶颈。通过SMP IRQ affinity,把网卡多个中断分配到多个CPU上,可以分散CPU压力,提高数据处理速度。

图1 SMP对称多处理器结构图1 SMP对称多处理器结构

同时,Linux的irqbalance用于优化中断分配,自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于Performance Mode或Power-Save Mode。处于Performance Mode时irqbalance会将中断尽可能均匀地分发给各个CPU以充分利用CPU多核,提升性能;处于Power-Save Mode时,irqbalance会将中断集中分配给第一个CPU,以保证其它空闲CPU的睡眠时间,降低能耗。

正常情况下,一张网卡只有一个队列用来接收网络数据包时,同一时间数据包的处理只能由某个单核处理,不仅无法发挥多CPU多核优势,而且大流量带宽下必然造成数据包阻塞。因此,随着技术的发展,引入了网卡多队列机制,一张网卡支持多个队列来接发收数据包,这样同一时间多个队列的数据包可以分散到不同的CPU进行处理。RSS(Receive Side Scaling)是网卡的硬件特性,实现多队列,每个队列对应一个中断号,通过中断绑定实现网卡中断在多CPU多核上的分配。

但是在网络压力较大时,多队列网卡I/O产生的中断访问非常多,此时队列数量会对网卡数据包的处理效率产生较大影响。根据实践经验,当单个PCIe槽位上网卡的队列总数等于该PCIe槽位所连接的CPU物理核数时,网卡I/O中断的处理效率将会最高。例如,单颗CPU的物理核心数为32,每张网卡的端口为2,所以网卡的多队列数应设置为16=32/2。

由于操作系统默认通过irqbalance服务来分派网卡队列中的网络数据包交由哪个CPU core处理,当irqbalance服务分配的处理网卡中断的CPU core不是网卡PCIe槽位所连接的CPU die或CPU时,会触发跨CPU die或CPU的core访问,中断处理效率会比较低。因此,在网卡队列数设置完成后,我们还需要关闭irqbalance服务,将网卡队列中断号绑定到处理网卡中断的CPU core上,从而减少跨CPU die或CPU访问所带来的额外开销,进一步提升网络处理性能。

#02、动手实践

1、判断当前系统环境是否支持多队列网卡。

# lspci -vvv

如果在Ethe.NET项中含有MSI-X: Enable+ Count=9 Masked-语句,则说明当前系统环境是支持多队列网卡的,否则不支持。

2、查看网卡是否支持多队列,以及最多支持多少、当前开启多少。

# ethtool -l eth0  

## 查看 eth0 多队列情况

3、设置网卡当前使用多队列。

# ethtool -L eth0 combined <N>   

##  针对 eth0 网卡设置多队列,N为要设置的队列数

4、确保多队列设置确实已生效,可以查看文件。

# ls /sys/class/net/eth0/queues/    

## 确认rx数量等于设定值

rx-0 rx-2 rx-4 rx-6 tx-0 tx-2 tx-4 tx-6
rx-1 rx-3 rx-5 rx-7 tx-1 tx-3 tx-5 tx-7

5、查看系统给网卡端口分配的中断号。

# cat /proc/interrupts | grep –i eth0

6、主动关闭irqbalance进程。

# service irqbalance stop

7、更新文件,设置中断绑定。

通过修改图片图片可以设置中断绑定,其中{IRQ_ID}是相应的中断号。smp_affinity内容是16进制,smp_affinity_list内容是10进制,两个文件相通,修改一个之后另一个相应改变。

#03、经验总结

1、可以通过手动改变smp_affinity文件中的值来将IRQ绑定到指定的CPU核心上,或者启用irqbalance服务来自动绑定IRQ到CPU核心上。针对多CPU多核的SMP体系,一般默认启用irqbalance简化配置并保障性能。

2、对于文件服务器、高流量Web服务器这样的应用来说,把不同的网卡IRQ均衡绑定到不同的CPU上将会减轻某个CPU的负担,提高多个CPU整体处理中断的能力。

3、对于数据库服务器这样的应用来说,把磁盘控制器绑到一个CPU、把网卡绑定到另一个CPU将会提高数据库的响应时间实现优化性能。

综上所述,性能优化是一个过程而不是结果,需要大量的测试、观察、验证和改进。因此,应用系统需要合理地根据生产环境配置和应用特点来平衡IRQ中断,从而不断提高系统的整体吞吐能力和性能。



Tags:服务器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
暴雪公布国服规则:当服务器开启时,将保证账号数据被完整保留
新浪科技讯 4月10日上午消息,暴雪娱乐、微软游戏与网易今日共同宣布,暴雪娱乐旗下的游戏作品,将根据更新后的游戏发行协议自今年夏季开始陆续重返中国大陆市场。消息公布后,暴雪...【详细内容】
2024-04-10  Search: 服务器  点击:(2)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01  Search: 服务器  点击:(58)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30  Search: 服务器  点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30  Search: 服务器  点击:(70)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  Search: 服务器  点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  Search: 服务器  点击:(55)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  Search: 服务器  点击:(74)  评论:(0)  加入收藏
计算机服务器中了mallox勒索病毒解密方案计划,勒索病毒解密措施
计算机技术的不断应用与发展,为企业的生产运营提供了有利条件,但网络安全威胁无处不在。近期,广西某生物制药企业的计算机服务器遭到了mallox勒索病毒攻击,导致企业的计算机所有...【详细内容】
2024-01-26  Search: 服务器  点击:(88)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  Search: 服务器  点击:(44)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  Search: 服务器  点击:(65)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(60)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(76)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(70)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(57)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(55)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(74)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(44)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(61)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(65)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(112)  评论:(0)  加入收藏
站内最新
站内热门
站内头条