解决方案:e1000e eno1 Detected Hardware Unit Hang

news2024/11/5 6:14:08

fjy89

在 Proxmox 6.5.11-8 中,偶发性会出现以下报错,尤其是在进行大文件传输后:

[97377.240263] e1000e 0000:00:1f eno1: Detected Hardware Unit Hang:
                 TDH                  <22>
                 TDT                  <2f>
                 next_to_use          <2f>
                 next_to_clean        <21>
               buffer_info[next_to_clean]:
                 time_stamp           <101725292>
                 next_to_watch        <22>
                 jiffies              <1017253e0>
                 next_to_watch.status <0>
               MAC Status             <40080083>
               PHY Status             <796d>
               PHY 1000BASE-T Status  <3800>
               PHY Extended Status    <3000>
               PCI Status             <10>

1.1 Intel 网卡驱动问题,特别是 e1000e

错误信息表明网络接口卡(NIC)在进行数据传输时遇到了硬件单元挂起的问题。这种情况在重网络负载时更容易发生。

这是多年来 I219-V、I218-V… 网卡型号及其驱动程序的一个已知错误。不仅在 proxmox 上,在 xcp-ng 上也是如此。

这个问题,截止 Proxmox 6.5.11-8 仍未被彻底解决,只能通过禁用 TCP 校验和卸载。

1.2 解决方案

通过执行命令:ethtool -K eno1 tso off gso off gro off 即可解决,但是每次重启机器或者网卡,都会失效。具体含义下方会说明。

如何长期解决?

/etc/network/interfaces 中,添加以下代码:

iface eno1 inet manual
    post-up /usr/bin/logger -p debug -t ifup "Disabling offload for eno1" && /sbin/ethtool -K $IFACE tso off gso off gro off && /usr/bin/logger -p debug -t ifup "Disabled offload for eno1"
  • post-up:这是一个钩子命令,它会在接口被成功激活(“up”状态)后执行。这里的命令会在 eno1 接口启动之后执行一系列动作。
  • /usr/bin/logger -p debug -t ifup “Disabling offload for eno1”:这条命令使用 logger 程序,将一条调试级别(debug)的信息写入系统日志。日志内容为 "Disabling offload for eno1",标记为 ifup。这样做的目的是记录接口启动时禁用某些功能的动作,方便日后查看系统日志,了解配置是否按预期执行。(可通过 journalctl -t ifup -p debug 查看日志)
  • /sbin/ethtool -K $IFACE tso off gso off gro off tx off rx off:这里使用 ethtool 工具来关闭网络接口的一些“硬件卸载(offload)”功能。具体地:
    • tso(TCP Segmentation Offload):关闭 TCP 分段卸载。TSO 允许网卡将大型 TCP 数据包分段,减轻 CPU 负担。如果关闭,系统会由 CPU 进行 TCP 分段。
    • gso(Generic Segmentation Offload):关闭通用分段卸载。GSO 是一种将不同协议的数据分段处理的技术,关闭它会让系统自己处理分段。
    • gro(Generic Receive Offload):关闭通用接收卸载。GRO 是一种接收数据包处理优化技术。关闭它意味着数据包接收将完全交由 CPU 处理。
    • tx(Transmit Checksum Offload):完全关闭传输时的校验和卸载。网卡不会自动处理数据包的校验和,而是让系统自行处理。
    • rx(Receive Checksum Offload):完全关闭接收时的校验和卸载,网卡不会校验接收到的数据包,需要系统来进行检查。

[!info] 信息

  • TSOGSOGRO 分别用于控制 TCP 分段、通用分段和接收卸载,这三个是针对传输层和网络层的优化。
  • tx offrx off 是更通用的选项,用于关闭整个发送(TX)和接收(RX)的卸载功能。

如果已经关闭了 TSO、GSO 和 GRO,那么 tx offrx off 可能会显得多余,因为这些设置会影响整个数据包的处理,而不只是特定的卸载功能。

在大多数情况下,只需关闭 TSO、GSO 和 GRO 就可以了,tx offrx off 可以根据需要选择是否使用。如果需要彻底禁用卸载功能,可以使用它们,但通常只关闭 TSO、GSO 和 GRO 是足够的。

[!note] 注意
这对于一些系统可能没有生效,那么可以尝试通过注册 Service 的方式执行。这里不赘述。

如何查看 tso、gso、gro 是否已经关闭:ethtool -k eno1 | grep -E 'tso|gso|gro'

yp93w

均为 off,说明已经关闭。

如何查看 TCP 校验和卸载是否开启:ethtool -a eno1

qegq7

些参数主要用于控制网络接口的流量控制,以减少数据包丢失,确保在网络拥堵时网络的稳定性。

  • Autonegotiate:开启表示接口支持自动协商功能,允许网络接口和连接到的设备协商最佳的传输模式(如全双工或半双工)和流量控制。
  • RX(Receive):此项“on”表示接收暂停帧的能力已开启。也就是说,网络接口在接收到暂停帧时会暂停接收数据。这在数据接收方无法及时处理流量时非常有用。
  • TX(Transmit):此项“on”表示发送暂停帧的能力已开启。网络接口可以在需要的时候发送暂停帧,指示对方暂停发送数据。这在本设备负载过高时很有帮助。
  • RX negotiated:表示接收暂停帧的能力已协商开启,表明两端设备在连接时已协商启用了接收流量控制。
  • TX negotiated:表示发送暂停帧的能力已协商开启,表明两端设备在连接时已协商启用了发送流量控制。

1.3 参考文献

  • e1000e eno1: Detected Hardware Unit Hang: | Proxmox Support Forum
  • e1000 driver hang | Page 8 | Proxmox Support Forum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2232387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nature文章《deep learning》文章翻译

这篇文章是对Nature上《deep learning》文章的翻译。原作者 Yann LeCun, Yoshua Bengio& Geoffrey Hinton。 这篇文章的中心思想是深入探讨深度学习在机器学习中的革命性贡献&#xff0c;重点介绍其在特征学习、监督学习、无监督学习等方面的突破&#xff0c;并阐述其在图…

微服务实战系列之玩转Docker(十六)

导览 前言Q&#xff1a;基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言 Docker&#xff0c;一个宠儿&#xff0c;一个云原生领域的…

Rust 力扣 - 1423. 可获得的最大点数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 题目所求结果存在下述等式 可获得的最大点数 所有卡牌的点数之和 - 长度为&#xff08;卡牌数量 - k&#xff09;的窗口的点数之和的最小值 我们遍历长度为&#xff08;卡牌数量 - k&#xff09;的窗口&#…

flink 内存配置(二):设置TaskManager内存

TaskManager在Flink中运行用户代码。根据需要配置内存使用&#xff0c;可以极大地减少Flink的资源占用&#xff0c;提高作业的稳定性。 注意下面的讲解适用于TaskManager 1.10之后的版本。与JobManager进程的内存模型相比&#xff0c;TaskManager内存组件具有类似但更复杂的结构…

配置DDNS结合光猫路由器实现外网映射

配置ddns结合光猫路由器实现外网映射 一、实现思路 首先需要去获取一个动态域名&#xff08;文章不再赘述&#xff0c;重点去介绍具体实现&#xff09;&#xff0c;用作后面与与公网绑定。然后需要在光猫和路由器上去做配置&#xff0c;同时确保路由器有公网IP&#xff0c;最…

如何在BSV区块链上实现可验证AI

​​发表时间&#xff1a;2024年10月2日 nChain的顶尖专家们已经找到并成功测试了一种方法&#xff1a;通过区块链技术来验证AI&#xff08;人工智能&#xff09;系统的输出结果。这种方法可以确保AI模型既按照规范运行&#xff0c;避免严重错误&#xff0c;遵守诸如公平、透明…

华为HarmonyOS打造开放、合规的广告生态 - 激励广告

场景介绍 激励广告是一种全屏幕的视频广告&#xff0c;用户可以选择点击观看&#xff0c;以换取相应奖励。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告&#xff0c;通过AdRequestPar…

easyui +vue v-slot 注意事项

https://www.jeasyui.com/demo-vue/main/index.php?pluginDataGrid&themematerial-teal&dirltr&pitemCheckBox%20Selection&sortasc 接口说明 <template><div><h2>Checkbox Selection</h2><DataGrid :data"data" style&…

unity搭建场景学习

unity搭建场景学习 创建场景创建gameobject创建材质&#xff0c;用于给gameobject上色拖拽材质球上色上色原理设置多个材质方式设置贴图的方式 效果设置光滑度一些预览设置菜单渲染模型与碰撞模型网格渲染参数1. materials(材质)2. lighting(光照)3. reflection probes(反射探针…

软件加密与授权管理:构建安全高效的软件使用体系

“软件加密与授权管理&#xff1a;构建安全高效的软件使用体系”是一个全面且深入的议题&#xff0c;以下是对该议题的详细探讨&#xff1a; 一、软件加密的概念与重要性 软件加密是指为软件添加保护措施&#xff0c;以防止其被盗版或非法复制。这一技术站在软件开发者的角度&a…

【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键

文章目录 1. 多模型选择2. 编辑快捷键3. 历史记录收藏 CodeMoss使用教程1. 安装CodeMoss插件2. 配置AI模型3. 使用快捷键4. 进行代码优化与解释5. 收藏历史记录 总结与展望 在当今快速发展的编程世界中&#xff0c;开发者们面临着越来越多的挑战。如何提高编程效率&#xff0c;…

宝塔Linux面板安装PHP扩展失败报wget: unable to resolve host address ‘download.bt.cn’

一、问题&#xff1a; 当使用宝塔面板安装PHP扩展失败出现如下错误时 Resolving download.bt.cn(download.bt.cn)...failed: Connection timed out. wget: unable toresolve host address download.bt.cn’ 二、解决&#xff1a; 第一步&#xff1a;如下命令执行拿到返回的I…

Scrapy源码解析:DownloadHandlers设计与解析

1、源码解析 代码路径&#xff1a;scrapy/core/downloader/__init__.py 详细代码解析&#xff0c;请看代码注释 """Download handlers for different schemes"""import logging from typing import TYPE_CHECKING, Any, Callable, Dict, Gener…

【C++】对左值引用右值引用的深入理解(右值引用与移动语义)

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 天高地阔&#xff0c;欲往观之。 ​ 目录 前言&#xff1a;对引用的底层理解 一、左值与右值 提问&#xff1a;左值在左&#xff0c;右值在右&#xff1f;…

docker下迁移elasticsearch的问题与解决方案

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 docker下迁移elasticsearch的问题与解决方案 数据挂载报错解决权限问题节点故障 直接上图&#x…

1.3 初探OpenCV贡献库

OpenCV贡献库&#xff08;opencv_contrib&#xff09;是OpenCV的一个扩展库&#xff0c;由社区开发&#xff0c;包含更多视觉应用和受专利保护的算法。它提供最新研究算法、扩展功能和社区支持。可以通过pip安装或手动编译。

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代&#xff0c;太空旅游成为了一个让人热血沸腾的话题。想象一下&#xff0c;坐在一颗漂浮的太空舱里&#xff0c;手中端着饮料&#xff0c;眺望着无尽的星辰大海&#xff0c;简直就像科幻电影中的情节一样。不过&#xff0c;这不仅仅是一个空洞的…

智能提醒助理系列-jdk8升级到21,springboot2.3升级到3.3【性能篇】

本系列文章记录“智能提醒助理”产品建设历程&#xff0c;记录实践经验、巩固知识点、锻炼总结能力。 本篇介绍技术栈升级后的切换方案以及性能提升。 一、需求出发点 智能提醒小程序 当前使用的是jdk8&#xff0c;springboot2.3,升级到jdk21和springboot3.3 学习新知识的同时…

ROS2入门学习——ROS在机器人中的运行

一、入门级基础平台TurtleBot TurtleBot 是 ROS 中重要且资源丰富的机器人之一&#xff0c;特别适合入门级机器人爱好者提供基础平台。用户可以直接利用其自带的软硬件&#xff0c;专注于应用程序的开发。TurtleBot 随着 ROS 的发展&#xff0c;一直处于开发前沿。 TurtleBot…

cuda、pytorch-gpu安装踩坑!!!

前提&#xff1a;已经安装了acanoda cuda11.6下载 直接搜索cuda11.6 acanoda操作 python版本3.9 conda create -n pytorch python3.9conda activate pytorch安装Pytorch-gpu版本等包 要使用pip安装&#xff0c;cu116cuda11.6版本 pip install torch1.13.1cu116 torchvi…