linux编译安装网卡驱动详解(网卡丢包)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

 安装编译网卡驱动

这两天发现一台server丢包很严重,使用cacti监控工具时能获得snmp包,时常又不能,丢包严重,导致使用ssh工具连接过慢,连接数据库访问超时,此时要先确定是中病毒还是网卡问题,

先对整体server的重要目录下查看,未发现异常文件,top查看,未发现异常进程,通过cacti对网卡流量分析,流量很少,由此基本可以确定和病毒无关;

所以,现在只能尝试通过升级网卡驱动,看是否可以解决此问题

先查看网卡驱动信息

查看方法:

[root@server46 ~]# dmesg | grep eth0

eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 106, node addr 00:1a:64:66:98:98

红色部分表示为server上的网卡,之后去相应官网下载最新驱动

linux-6.2.23.zip 这个源码包是我新下载的,解压

[root@server46 mysql]# unzip linux-6.2.23.zip 

进入目录:/home/mysql/Server/Linux/Driver,包放置的目录不同,这个目录是我包放置的目录,此目录下面包含

  netxtreme2-6.2.23.tar.gz        RELEASE.bnx2i.TXT  RELEASE.bnx2x.TXT

netxtreme2-6.2.23-1.src.rpm  netxtreme2_sup-6.2.23-1.ISO.tar.gz  RELEASE.bnx2.TXT

升级网卡驱动,可以通过安装rpm包或者.tar.gz的源码包,rpm包的安装方法可以搜集下,下面来看如何编译安装

解压netxtreme2-6.2.23.tar.gz ,进入相应目录

[root@server46 Driver]# cd netxtreme2-6.2.23

[root@server46 netxtreme2-6.2.23]# ls

bnx2  bnx2-2.0.23b  bnx2i  bnx2i-2.6.2.4c  bnx2x  bnx2x-1.62.15  INSTALL.TXT  Makefile

每一个驱动程序中,都会有提示安装方法,cat 查看下INSTALL.TXT文件

文件中有提示

The following are general guidelines for installing the driver.

1. Create a directory and extract the files:

   tar xvzf netxtreme2-<version>.tar.gz

下面都有提示

如何查看自己内核的版本呢:[root@server46 netxtreme2-6.2.23]# uname -r

2.6.18-128.el5

之后 make

[root@server46 netxtreme2-6.2.23]# make

make -C bnx2/src  KVER=2.6.18-128.el5 PREFIX=

make[1]: Entering directory `/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2-2.0.23b/src'

make -C /lib/modules/2.6.18-128.el5/build SUBDIRS=/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2-2.0.23b/src modules

make[2]: Entering directory `/usr/src/kernels/2.6.18-128.el5-x86_64'

  Building modules, stage 2.

Make时,看是否会提示error,不然的话会导致失败的,如果没有提示失败,就再执行make install

make[2]: Leaving directory `/usr/src/kernels/2.6.18-128.el5-x86_64'

gzip -c bnx2x.4 > bnx2x.4.gz

install -m 644 bnx2x.4.gz /usr/share/man/man4

make[1]: Leaving directory `/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23/bnx2x-1.62.15/src'

[root@server46 netxtreme2-6.2.23]# ls

中间如果没有提示error就好,内容太多,就不在一一截图了

此时,需要注意,因为在目录/home/mysql/Server/Linux/Driver/netxtreme2-6.2.23下有多个bnx2 、 bnx2i、bnx2x

如何确定需要安装那个目录下的驱动文件,此时看之前的INSTALL.TXT文件

- bnx2 driver for the Broadcom NetXtreme II BCM5706/BCM5708/5709/5716

  10/100/1000/2500/10000 Mbps PCIX/PCIE Ethernet Network Controller.

- bnx2x driver for the Broadcom NetXtremeII BCM57710/BCM57711/BCM57711E

  10/100/1000/2500/10000 Mbps PCIE Ethernet Network Controller.

从我们之前获得的网卡型号,eth0: Broadcom NetXtreme II BCM5708 1000Base-T (B2) PCI-X 64-bit 133MHz found at mem ce000000, IRQ 106, node addr 00:1a:64:66:98:98

所以,需要复制bnx2下的驱动文件即可

[root@server46 netxtreme2-6.2.23]# cp bnx2/src/bnx2.ko  /lib/modules/2.6.18-128.el5/kernel/net/

路径:/lib/modules/2.6.18-128.el5/kernel/net/ 是你的内核版本,由uname -r 可以查看

之后附加权限:

 chmod -R 755 //lib/modules/2.6.18-128.el5/kernel/net/

赋加可执行权限,这样在重启的时候,会有可执行权限

之后执行depmod命令,更新下modules.dep文件,再

[root@server46 netxtreme2-6.2.23]# vi /etc/modprobe.conf  文件

alias eth0 bnx2

alias eth1 bnx2

alias scsi_hostadapter aacraid

alias scsi_hostadapter1 ata_piix 

Ok.退出,保存,

Reboot系统

登录系统后,查看下

[root@server46 ~]# lsmod | grep bnx2

bnx2                  224140  0 

[root@server46 ~]# ethtool -i eth1

driver: bnx2

version: 2.0.23b

firmware-version: bc 1.9.6

bus-info: 0000:06:00.0

现在版本变成2.0.23b,表示升级成功!!!!!

再用cacti监控的时候,一切正常

当出现server丢包的时候:

1.先ping 网关,看是否丢包

2.再去ping网关的吓一跳,看是否丢包,如果丢包,用另外的server测试,ping吓一跳是否丢包,如果丢包,考虑网络问题,如果不丢包,就优先考虑server本身问题,网卡和系统

3.考虑系统是确定是否中毒导致的,可以查看系统是否有乱码文件,是否有异常的进程,用tcpdump工具,监控流量时候有异常;如果以上都没有发现,就考虑网卡

4.考虑网卡,一般情况下,server上都有双网卡,可以先换网卡尝试,如果还丢包,升级网卡驱动

此文章是我在编译安装的同时记录的,其中不免有记录不正确的地方,所以,仅供大家参考,有其他想法可加入QQ群:140704742 交流




      本文转自天真花语  51CTO博客,原文链接:http://blog.51cto.com/caibird/754884,如需转载请自行联系原作者





相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
85 34
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
81 17
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
25 4
Oracle linux 8 二进制安装 MySQL 8.4企业版
Oracle linux 8 二进制安装 MySQL 8.4企业版
35 1
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
58 10
|
25天前
|
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
59 1
|
1月前
|
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
80 6
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
164 21
YashanDB Linux客户端安装
本文详细介绍了YashanDB客户端在Linux系统中的安装、使用与卸载步骤。安装方法包括适用于所有Linux平台的脚本安装和专用于CentOS的rpm安装。脚本安装需解压软件包并配置环境变量,而rpm安装则需以root用户执行相关命令。此外,文章还说明了如何通过yasql连接YashanDB并进行数据库操作,以及两种安装方式对应的卸载方法,帮助用户顺利完成客户端的管理与维护。
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。