系统运维 有没有大佬遇到过这个问题的,网卡硬件、网卡驱动、系统内核问题定位应该怎么排查

TT · 2025年01月15日 · 最后由 admin 回复于 2025年01月15日 · 60 次阅读

Jan 13 16:21:49 qwlip2 kernel: ------------[ cut here ]------------ Jan 13 16:21:49 qwlip2 kernel: WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:356 dev_watchdog+0x248/0x260 Jan 13 16:21:49 qwlip2 kernel: NETDEV WATCHDOG: ens7f0 (bnxt_en): transmit queue 0 timed out Jan 13 16:21:49 qwlip2 kernel: Modules linked in: binfmt_misc tcp_diag inet_diag tq_base(OE) iptable_filter bonding vfat fat skx_edac nfit libnvdimm ipmi_ssif intel_powerclamp coretemp intel_rapl iosf_mbi kvm irqbypass crc32_pclmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd pcspkr ses enclosure cdc_eem usbnet sg mii mei_me lpc_ich mei hpilo hpwdt wmi ipmi_si ipmi_devintf ipmi_msghandler acpi_power_meter ip_tables ext4 mbcache jbd2 sd_mod crc_t10dif crct10dif_generic mgag200 drm_kms_helper crct10dif_pclmul syscopyarea crct10dif_common sysfillrect crc32c_intel sysimgblt uas fb_sys_fops ttm igb bnxt_en drm usb_storage smartpqi ptp pps_core dca devlink i2c_algo_bit scsi_transport_sas drm_panel_orientation_quirks dm_mirror dm_region_hash dm_log dm_mod Jan 13 16:21:49 qwlip2 kernel: CPU: 0 PID: 0 Comm: swapper/0 Kdump: loaded Tainted: GF OE ------------ 3.10.0-1160.el7.x86_64 #1 Jan 13 16:21:49 qwlip2 kernel: Hardware name: HPE ProLiant DL580 Gen10/ProLiant DL580 Gen10, BIOS U34 07/16/2020 Jan 13 16:21:49 qwlip2 kernel: Call Trace: Jan 13 16:21:49 qwlip2 kernel: [] dump_stack+0x19/0x1b Jan 13 16:21:49 qwlip2 kernel: [] __warn+0xd8/0x100 Jan 13 16:21:49 qwlip2 kernel: [] warn_slowpath_fmt+0x5f/0x80 Jan 13 16:21:49 qwlip2 kernel: [] dev_watchdog+0x248/0x260 Jan 13 16:21:49 qwlip2 kernel: [] ? dev_deactivate_queue.constprop.27+0x60/0x60 Jan 13 16:21:49 qwlip2 kernel: [] call_timer_fn+0x38/0x110 Jan 13 16:21:49 qwlip2 kernel: [] ? dev_deactivate_queue.constprop.27+0x60/0x60 Jan 13 16:21:49 qwlip2 kernel: [] run_timer_softirq+0x24d/0x300 Jan 13 16:21:49 qwlip2 kernel: [] __do_softirq+0xf5/0x280 Jan 13 16:21:49 qwlip2 kernel: [] call_softirq+0x1c/0x30 Jan 13 16:21:49 qwlip2 kernel: [] do_softirq+0x65/0xa0 Jan 13 16:21:49 qwlip2 kernel: [] irq_exit+0x105/0x110 Jan 13 16:21:49 qwlip2 kernel: [] smp_apic_timer_interrupt+0x48/0x60 Jan 13 16:21:49 qwlip2 kernel: [] apic_timer_interrupt+0x16a/0x170 Jan 13 16:21:49 qwlip2 kernel: [] ? cpuidle_enter_state+0x57/0xd0 Jan 13 16:21:49 qwlip2 kernel: [] ? cpuidle_enter_state+0x4d/0xd0 Jan 13 16:21:49 qwlip2 kernel: [] cpuidle_idle_call+0xde/0x230 Jan 13 16:21:49 qwlip2 kernel: [] arch_cpu_idle+0xe/0xc0 Jan 13 16:21:49 qwlip2 kernel: [] cpu_startup_entry+0x14a/0x1e0 Jan 13 16:21:49 qwlip2 kernel: [] rest_init+0x77/0x80 Jan 13 16:21:49 qwlip2 kernel: [] start_kernel+0x44b/0x46c Jan 13 16:21:49 qwlip2 kernel: [] ? repair_env_string+0x5c/0x5c Jan 13 16:21:49 qwlip2 kernel: [] ? early_idt_handler_array+0x120/0x120 Jan 13 16:21:49 qwlip2 kernel: [] x86_64_start_reservations+0x24/0x26 Jan 13 16:21:49 qwlip2 kernel: [] x86_64_start_kernel+0x154/0x177 Jan 13 16:21:49 qwlip2 kernel: [] start_cpu+0x5/0x14 Jan 13 16:21:49 qwlip2 kernel: ---[ end trace ce1a06491aa66529 ]--- Jan 13 16:21:49 qwlip2 kernel: bnxt_en 0000:1a:00.0 ens7f0: TX timeout detected, starting reset task! ....... Jan 13 16:21:54 qwlip2 kernel: bnxt_en 0000:1a:00.0 ens7f0: TX timeout detected, starting reset task! ..... Jan 13 16:22:04 qwlip2 kernel: bnxt_en 0000:1a:00.0 ens7f0: TX timeout detected, starting reset task!

机器型号:HP-DL580 G10 网卡型号:Adapter 1 -HPE Eth 10Gb 2p 535T Adpt 系统版本:Centos Linux release 7.9.2009(core)

从日志信息和问题描述来看,问题可能与网卡驱动、硬件或系统内核相关联。以下是排查思路:

1.硬件层面检查

  • 检查网卡物理连接:确保网线连接正常,避免松动或损坏。
  • 检查硬件健康状况:通过 HPE 提供的诊断工具(如 iLO 系统管理界面)查看硬件是否存在问题。
  • 确认网卡兼容性:检查网卡是否与当前服务器和系统版本兼容。

2.驱动层面检查

  • 检查驱动版本:
  • 使用 ethtool -i ens7f0 查看网卡驱动版本。
  • 确认 bnxt_en 驱动是否是最新版本。若不是,请到 HPE 官网下载更新的驱动。
  • 尝试重新加载驱动:
modprobe -r bnxt_en
modprobe bnxt_en

查看问题是否解决。

  • 查看驱动参数:

使用 ethtool 检查网卡配置(如速度、双工模式、队列等)是否正确。

3.系统层面检查

  • 检查内核版本:
  • 当前内核为 3.10.0-1160.el7.x86_64,确认是否需要升级内核。
  • 内核版本较老,建议升级到 CentOS 7 支持的最新稳定版本。
  • 调整内核参数:

在 /etc/sysctl.conf 中检查和调整与网络相关的参数,例如:

net.core.netdev_max_backlog = 5000
net.core.somaxconn = 1024

应用配置:

sysctl -p

4.网络层面检查

  • 确认网络环境是否异常:
  • 检查交换机或网络设备日志,确认是否有丢包或高延迟问题。
  • 检查传输队列:

使用以下命令检查网卡队列状态:

ethtool -S ens7f0

5.日志分析

  • 重点关注错误日志:

查看 /var/log/messages 或 /var/log/dmesg 中的相关错误,分析是否存在异常模式。

  • 启用更详细的驱动日志:

修改驱动的调试级别,获取更详细的日志:

echo "module bnxt_en +p" > /sys/kernel/debug/dynamic_debug/control

6.重现和替换法

  • 尝试更换网卡端口或网卡:检查是否为特定硬件端口问题。
  • 更换交换机端口或网线:排除外部环境因素。

7.联系厂商支持

  • 如果以上方法无法解决问题,建议联系 HPE 支持,提供日志和配置详细信息,寻求进一步帮助。

通过以上步骤逐步排查,应该能定位问题的根本原因。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册