Linux内核网络优化:两个网络调优解决方案

🌐 Linux内核网络优化:两个网络调优解决方案

📖 前言

在网络性能优化领域,内核参数调优是提升系统性能的关键手段。合理的网络参数配置能够显著提升服务器的并发处理能力、降低网络延迟、提高吞吐量。


🏗️ 内核网络优化基础原理

📊 Linux网络栈架构概述

在深入具体配置之前,我们首先需要理解Linux网络栈的基本架构。下图展示了Linux内核网络处理的核心流程:
网络数据包 网卡驱动 NAPI处理 IP层处理 TCP/UDP层 Socket缓冲区 应用程序 应用程序 Socket缓冲区 TCP/UDP层 IP层处理 队列规则Qdisc 网卡队列 网络数据包 控制路径 拥塞控制 缓冲区管理 连接跟踪

⚙️ 优化核心维度

内核网络优化主要围绕以下几个核心维度展开:

  1. 🔧 缓冲区管理 - 调节内存使用与吞吐量的平衡
  2. 🚦 队列管理 - 控制数据包排队和调度行为
  3. 📈 拥塞控制 - 优化网络拥塞时的传输策略
  4. 🔗 连接管理 - 管理TCP连接状态和资源分配
  5. 💾 内存管理 - 优化系统内存使用策略

🎯 方案一:中等负载通用优化配置详解

📋 配置全景图

以下配置方案针对中等并发通用业务场景进行了优化,在性能与资源消耗之间取得了良好平衡。

🔧 完整配置代码与注解

bash 复制代码
# ======================================
# 🌐 网络核心参数优化模块
# ======================================

# 设置默认队列规则为公平队列(FQ)
# FQ算法能够公平分配带宽,减少Bufferbloat问题
net.core.default_qdisc = fq

# 设置单个Socket最大接收缓冲区大小(64MB)
# 影响单连接最大吞吐能力
net.core.rmem_max = 67108848

# 设置单个Socket最大发送缓冲区大小(64MB)
# 影响单连接最大发送能力
net.core.wmem_max = 67108848

# 设置系统层面全连接队列最大长度
# 每个端口等待accept()的连接最大数量
net.core.somaxconn = 4096

# TCP半连接队列(SYN队列)最大长度
# 存储收到SYN但未完成三次握手的连接
net.ipv4.tcp_max_syn_backlog = 4096

# 启用Google BBR拥塞控制算法
# BBR基于带宽和延迟估计,替代传统基于丢包的算法
net.ipv4.tcp_congestion_control = bbr

# TCP接收缓冲区自动调整范围:16KB ~ 512MB
# 三个值分别代表:最小值、默认值、最大值
net.ipv4.tcp_rmem = 16384 16777216 536870912

# TCP发送缓冲区自动调整范围:16KB ~ 512MB
net.ipv4.tcp_wmem = 16384 16777216 536870912

# TCP窗口高级缩放因子(-2表示激进优化)
# 负值减少缓冲区开销,正值增加预测准确性
net.ipv4.tcp_adv_win_scale = -2

# 启用TCP选择性确认(SACK)
# 允许接收方告知发送方哪些数据段已成功接收
net.ipv4.tcp_sack = 1

# 启用TCP时间戳选项
# 支持PAWS(保护防止回绕序列号)和精确RTT测量
net.ipv4.tcp_timestamps = 1

# ======================================
# 🛡️ 系统稳定性与可靠性模块
# ======================================

# 内核panic时无限等待,避免自动重启
# 便于现场调试和故障分析
kernel.panic = -1

# 完全禁用交换分区,避免内存交换影响性能
# 适用于内存充足且要求确定性的场景
vm.swappiness = 0

# 启用SysRq魔法键功能
# 系统出现问题时便于调试和恢复
kernel.sysrq = 1

# ======================================
# 🔄 网络邻居表(ARP)优化模块
# ======================================

# 设置ARP缓存项的过期时间(秒)
# 控制ARP记录在缓存中的存活时间
net.ipv4.neigh.default.gc_stale_time = 120

# ======================================
# ☁️ 云环境特定优化模块
# ======================================

# 禁用反向路径过滤(RP Filter)
# 在复杂网络拓扑中避免数据包被错误丢弃
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

# 配置ARP宣告策略(级别2)
# 级别2:始终使用最佳本地地址进行ARP响应
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

# ======================================
# 🔗 TCP连接生命周期管理模块
# ======================================

# 限制系统同时存在的TIME_WAIT状态连接数量
# 防止TIME_WAIT连接耗尽端口资源
net.ipv4.tcp_max_tw_buckets = 5000

# 启用SYN Cookie防护机制
# 在SYN队列满时防止SYN Flood攻击
net.ipv4.tcp_syncookies = 1

# 重新设置SYN半连接队列长度(覆盖前值)
net.ipv4.tcp_max_syn_backlog = 1024

# 设置SYN-ACK包的重传次数
# 降低连接建立延迟,但可能影响可靠性
net.ipv4.tcp_synack_retries = 2

# 禁用空闲连接后的慢启动
# 保持长连接的传输效率
net.ipv4.tcp_slow_start_after_idle = 0

# ======================================
# 💾 虚拟内存子系统优化模块
# ======================================

# 调整内存交换倾向性(0-100,值越小越避免交换)
# 此处被后续设置覆盖,实际生效值为10
vm.swappiness = 10

# 设置系统脏页比例阈值(15%)
# 当脏页达到内存的15%时,进程开始同步写回
vm.dirty_ratio = 15

# 设置后台脏页写回比例阈值(5%)
# 内核后台线程在脏页达到5%时开始写回
vm.dirty_background_ratio = 5

# 启用内存过量分配模式(1=总是过量分配)
# 提高内存利用率,但可能因OOM杀死进程
vm.overcommit_memory = 1

# 设置系统保留的最小空闲内存(64MB)
# 确保系统在内存压力下有足够内存处理关键操作
vm.min_free_kbytes = 65536

# ======================================
# 📡 网络设备与协议栈优化模块
# ======================================

# 重新设置网络缓冲区大小(16MB)
# 这个值比之前的64MB更保守,平衡内存使用
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# 设置网络设备积压包队列长度
# 控制从网卡到协议栈的缓冲队列
net.core.netdev_max_backlog = 250000

# 重新设置TCP缓冲区范围(4KB ~ 16MB)
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 重新确认启用BBR拥塞控制
net.ipv4.tcp_congestion_control = bbr

# 重新确认启用FQ队列规则
net.core.default_qdisc = fq

# 重新确认SYN队列长度(覆盖为8192)
net.ipv4.tcp_max_syn_backlog = 8192

# 启用TIME_WAIT状态socket重用
# 允许新的连接重用处于TIME_WAIT状态的socket
net.ipv4.tcp_tw_reuse = 1

# 设置本地可用端口范围(1024-65535)
# 影响客户端连接的可用源端口数量
net.ipv4.ip_local_port_range = 1024 65535

# BBR特定参数:调整发包节奏比例(110%)
# 控制BBR算法的发送速率与估计带宽的比例
net.ipv4.tcp_pacing_ca_ratio = 110

# 启用TCP窗口缩放功能(缩放因子2^2=4倍)
# 允许TCP窗口大于64KB,提高长肥管道性能
net.ipv4.tcp_window_scaling = 2

# ======================================
# 🗂️ 系统缓存与调度优化模块
# ======================================

# 调整文件系统缓存压力(值越低内核越倾向保留缓存)
vm.vfs_cache_pressure = 50

# 禁用调度器自动分组功能
# 避免内核自动为任务创建cgroup,减少开销
kernel.sched_autogroup_enabled = 0

# 禁用NUMA自动平衡
# 在非NUMA系统或已知工作负载时减少迁移开销
kernel.numa_balancing = 0

📈 方案一架构特点分析

方案一的设计哲学是在性能资源效率之间寻找平衡点。让我们通过架构图来理解其设计思路:
方案一设计理念 平衡性优化 通用适用性 云环境适配 中等缓冲区设置 适度连接队列 保守内存分配 Web服务器优化 API服务调优 数据库中间件 阿里云兼容 虚拟化友好 弹性伸缩支持 16MB-512MB缓冲区范围 4096-8192连接队列 适度交换配置

🎯 方案一适用场景分析

🏢 企业级Web应用服务器

典型工作负载特征:

  • 并发连接数:1,000 - 10,000
  • 请求响应模式:短连接为主
  • 带宽需求:100Mbps - 1Gbps
  • 延迟要求:中等(50-200ms)

配置优势体现:

  • net.core.somaxconn = 4096 适合中等并发
  • net.ipv4.tcp_max_syn_backlog = 8192 应对突发SYN请求
  • net.ipv4.tcp_tw_reuse = 1 优化短连接性能
🌐 API网关与微服务

架构特点:

  • 服务间通信频繁
  • 连接建立/拆除开销显著
  • 需要稳定的吞吐性能

针对性优化:

  • BBR拥塞控制提供稳定的带宽利用
  • TCP快速打开减少握手延迟
  • 适度的缓冲区避免内存浪费
💼 云原生数据库中间件

性能需求:

  • 中等数据吞吐量
  • 连接池管理效率
  • predictable性能表现

配置匹配度:

  • 虚拟内存设置平衡性能与稳定性
  • 网络参数适应云网络特性
  • 系统稳定性参数确保服务可靠性

🚀 方案二:高并发高性能优化配置详解

📋 配置全景图

方案二针对极端并发高性能网络场景设计,追求极致的吞吐量和连接处理能力。

🔧 完整配置代码与注解

bash 复制代码
# ======================================
# 💾 内存过量分配策略模块
# ======================================

# 启用内存过量分配模式(1=总是过量分配)
# 适用于内存密集型和高性能计算场景
vm.overcommit_memory = 1

# ======================================
# 🔄 接收端包处理(RPS)优化模块
# ======================================

# 设置RPS流表条目数(32768个流)
# 支持多核负载均衡,提高多队列网卡性能
net.core.rps_sock_flow_entries = 32768

# ======================================
# 🛡️ 网络安全与访问控制模块
# ======================================

# 可选:禁用所有ICMP Echo响应(禁ping)
# 增强安全性但影响网络诊断(当前被注释)
# net.ipv4.icmp_echo_ignore_all = 1

# 可选:禁用广播ICMP Echo响应
# net.ipv4.icmp_echo_ignore_broadcasts = 1

# ======================================
# 📁 文件系统限制优化模块
# ======================================

# 提高系统级别最大文件句柄数(100万)
# 支持高并发连接的文件描述符需求
fs.file-max = 1000000

# 增加inotify实例监控限制(65536个)
# 适应大量文件监控需求(如容器环境)
fs.inotify.max_user_instances = 65536

# ======================================
# 🛣️ 路由转发与网络栈模块
# ======================================

# 启用本地网络路由转发支持
net.ipv4.conf.all.route_localnet = 1

# 启用IPv4包转发功能(路由器模式)
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.default.forwarding = 1

# 启用IPv6包转发功能
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.lo.forwarding = 1

# 启用IPv6协议栈支持
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

# 配置IPv6路由器通告接受策略(2=接受并应用)
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.default.accept_ra = 2

# ======================================
# 🚫 路由安全与重定向控制模块
# ======================================

# 禁用所有ICMP重定向接受(安全加固)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# 禁用安全ICMP重定向接受
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# 禁用ICMP重定向发送
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# 禁用反向路径过滤(适应复杂网络)
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

# ======================================
# 🔄 ARP缓存与邻居表优化模块
# ======================================

# 设置ARP缓存项的过期时间(60秒)
# 比方案一更短的超时,适应动态网络环境
net.ipv4.neigh.default.gc_stale_time = 60

# ======================================
# 🛡️ TCP连接安全与可靠性模块
# ======================================

# 启用SYN Cookie防护(DDoS防护)
net.ipv4.tcp_syncookies = 1

# 设置TCP重传策略(本地网络3次,远程8次)
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 8

# 设置SYN连接建立重试次数(2次)
# 快速失败,减少连接建立延迟
net.ipv4.tcp_syn_retries = 2

# 设置SYN-ACK重传次数(2次)
net.ipv4.tcp_synack_retries = 2

# 启用TIME_WAIT状态socket重用
# 大幅提高端口复用效率
net.ipv4.tcp_tw_reuse = 1

# 设置FIN-WAIT-2状态超时时间(15秒)
# 控制半关闭连接的等待时间
net.ipv4.tcp_fin_timeout = 15

# 大幅增加TIME_WAIT状态连接桶数(32768个)
# 支持大量短连接场景
net.ipv4.tcp_max_tw_buckets = 32768

# ======================================
# ⚙️ 网络设备处理与NAPI优化模块
# ======================================

# 设置网络设备处理权重(影响CPU分配)
net.core.dev_weight = 4096

# 设置NAPI处理包数量预算(65536个包)
net.core.netdev_budget = 65536

# 设置NAPI处理时间预算(4096微秒)
net.core.netdev_budget_usecs = 4096

# ======================================
# 📊 连接队列与背压控制模块
# ======================================

# 大幅增加SYN半连接队列长度(262144个)
# 支持极高并发连接建立
net.ipv4.tcp_max_syn_backlog = 262144

# 设置网络设备积压队列长度(32768个包)
net.core.netdev_max_backlog = 32768

# 大幅增加全连接队列长度(32768个)
net.core.somaxconn = 32768

# ======================================
# 🚀 TCP发送优化与流量控制模块
# ======================================

# 设置未发送数据低水位线(128KB)
# 适用于高速网络环境(30Mbps以上)
net.ipv4.tcp_notsent_lowat = 131072

# 适用于一般网络环境
# net.ipv4.tcp_notsent_lowat=16384

# ======================================
# ❤️ TCP保活与连接健康检查模块
# ======================================

# 设置TCP保活探测起始时间(600秒)
net.ipv4.tcp_keepalive_time = 600

# 设置保活探测次数(5次)
net.ipv4.tcp_keepalive_probes = 5

# 设置保活探测间隔(15秒)
net.ipv4.tcp_keepalive_intvl = 15

# ======================================
# 💽 虚拟内存与交换策略模块
# ======================================

# 设置极低交换倾向性(1/100)
# 尽可能避免内存交换,保证性能
vm.swappiness = 1

# ======================================
# 🗑️ 路由与邻居表垃圾回收模块
# ======================================

# 设置路由缓存GC超时时间(100秒)
net.ipv4.route.gc_timeout = 100

# 设置IPv4邻居表GC阈值(1024/4096/8192)
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192

# 设置IPv6邻居表GC阈值
net.ipv6.neigh.default.gc_thresh1 = 1024
net.ipv6.neigh.default.gc_thresh2 = 4096
net.ipv6.neigh.default.gc_thresh3 = 8192

# ======================================
# 🔍 连接跟踪与会话状态模块
# ======================================

# 设置连接跟踪表最大条目数(262144个)
net.netfilter.nf_conntrack_max = 262144
net.nf_conntrack_max = 262144

# 设置已建立TCP连接跟踪超时(10小时)
net.netfilter.nf_conntrack_tcp_timeout_established = 36000

# ======================================
# 🌊 TCP高级功能与协议优化模块
# ======================================

# 启用TCP Fast Open(服务端和客户端)
# 减少TCP握手延迟,提高连接建立速度
net.ipv4.tcp_fastopen = 3

# 禁用TCP自动corking(避免延迟)
net.ipv4.tcp_autocorking = 0

# 禁用空闲后的慢启动(保持传输效率)
net.ipv4.tcp_slow_start_after_idle = 0

# 不保存TCP连接指标(避免过时信息影响)
net.ipv4.tcp_no_metrics_save = 1

# 禁用显式拥塞通知(ECN)
# 避免与某些网络设备兼容性问题
net.ipv4.tcp_ecn = 0

# 禁用其他TCP增强功能(兼容性考虑)
net.ipv4.tcp_frto = 0
net.ipv4.tcp_mtu_probing = 0
net.ipv4.tcp_rfc1337 = 0

# 启用TCP选择性确认(SACK)
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1

# 启用TCP窗口缩放(支持大窗口)
net.ipv4.tcp_window_scaling = 1

# 设置TCP窗口高级缩放因子(1=平衡模式)
net.ipv4.tcp_adv_win_scale = 1

# 启用接收缓冲区自动调节
net.ipv4.tcp_moderate_rcvbuf = 1

# ======================================
# 💫 网络缓冲区内存管理模块
# ======================================

# 设置核心网络缓冲区最大值(32MB)
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432

# 设置TCP缓冲区自动调整范围(4KB ~ 32MB)
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 16384 33554432

# 设置UDP缓冲区最小值(8KB)
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192

# 设置TCP内存全局压力控制
# 三个值:低压力阈值、内存压力阈值、高压力阈值
net.ipv4.tcp_mem = 262144 1048576 4194304

# 设置UDP内存全局压力控制
net.ipv4.udp_mem = 262144 524288 1048576

# ======================================
# 🎯 BBR拥塞控制与队列管理模块
# ======================================

# 启用BBR拥塞控制算法
net.ipv4.tcp_congestion_control = bbr

# 设置FQ(公平队列)为默认队列规则
net.core.default_qdisc = fq

# ======================================
# 🐛 核心转储与调试支持模块
# ======================================

# 配置核心转储文件路径和命名格式
# %t=时间戳, %p=进程ID, %e=程序名称
kernel.core_pattern = /root/coredump/core-%t-%p-%e

📈 方案二架构特点分析

方案二的设计理念是极致性能大规模并发支持。其架构特点如下图所示:
方案二设计理念 极致性能追求 大规模并发 基础设施级别 超大连接队列 激进内存分配 高度协议优化 负载均衡器 代理服务器 网关系统 路由转发支持 连接跟踪优化 全栈调优 262144 SYN队列 过量内存分配 TCP Fast Open LVS/HAProxy Nginx/Envoy API网关

🎯 方案二适用场景分析

🌊 高并发负载均衡器

性能需求特征:

  • 并发连接数:100,000+
  • 每秒新建连接:10,000+
  • 带宽需求:10Gbps+
  • 延迟要求:极低(<10ms)

关键配置支撑:

  • net.ipv4.tcp_max_syn_backlog = 262144 支持大量并发连接建立
  • net.core.somaxconn = 32768 大幅提高accept队列
  • net.ipv4.tcp_tw_reuse = 1 高效端口复用
🔄 反向代理与API网关

架构挑战:

  • 前后端连接映射管理
  • 协议转换开销
  • 连接池效率要求高

优化亮点:

  • BBR算法确保带宽高效利用
  • TCP Fast Open减少握手延迟
  • 连接跟踪支持NAT和状态维护
📡 CDN边缘节点与流媒体服务器

业务特性:

  • 大量持久连接
  • 高带宽消耗
  • 低延迟要求严格

技术匹配:

  • 大TCP窗口支持高速传输
  • 优化的缓冲区管理
  • 保活机制适应长连接
🎮 实时通信与游戏服务器

性能关键指标:

  • 延迟敏感性极高
  • 连接稳定性要求
  • 突发流量处理能力

配置优势:

  • 快速重传和恢复机制
  • 精确的拥塞控制
  • 低水位线优化减少发送延迟

📊 双网络调优方案对比

🔄 核心参数差异对比

让我们通过详细的数据对比来理解两个方案的差异:

📈 连接管理参数对比
💾 内存与缓冲区对比
参数类别 方案一 方案二 差异倍数 影响分析
核心缓冲区 16MB 32MB 2.0x 方案二单连接吞吐更高
TCP接收缓冲区 16MB-512MB 4KB-32MB 0.5x(max) 方案一支持更大单流
TCP发送缓冲区 16MB-512MB 4KB-32MB 0.5x(max) 方案一更激进
SYN队列 8,192 262,144 32.0x 方案二并发建立能力极强
连接跟踪 无配置 262,144 N/A 方案二支持有状态服务
⚡ 性能特征雷达图对比

🏆 应用场景推荐

📋 决策矩阵
评估维度 方案一胜出场景 方案二胜出场景 关键判断指标
并发连接数 < 20,000 > 50,000 活跃连接数
网络带宽 < 1Gbps > 5Gbps 平均带宽使用率
内存资源 有限(<=32GB) 充足(>=64GB) 可用内存大小
业务类型 短连接API 长连接代理 连接生命周期
部署环境 云虚拟机 物理服务器 硬件资源确定性
🎯 具体业务推荐
✅ 选择方案一

方案一适用场景 Web应用服务器 微服务API 中小型数据库 业务逻辑层 并发<10K 内存<=32GB RESTful API GraphQL服务 MySQL/PostgreSQL Redis中间件

✅ 选择方案二

方案二适用场景 负载均衡器 代理服务器 流媒体服务 游戏服务器 LVS/HAProxy Nginx代理集群 Envoy/Istio Traefik网关 视频流媒体 音频实时传输

⚠️ 风险与注意事项
🚨 方案一潜在风险
  • 内存不足vm.overcommit_memory=1可能导致OOM
  • 连接限制:突发流量可能耗尽连接队列
  • 缓冲区浪费:过大的缓冲区设置可能浪费内存
🚨 方案二潜在风险
  • 资源耗尽:极致的配置需要充足的硬件资源
  • 兼容性问题:某些TCP优化可能与老旧网络设备不兼容
  • 调试复杂度:复杂的配置增加问题排查难度

📈 性能监控

bash 复制代码
# 实时连接状态监控
watch -n 1 'netstat -ant | awk '\''NR>2 {print $6}'\'' | sort | uniq -c'

# TCP重传率监控
watch -n 1 'cat /proc/net/netstat | grep -i tcpretrans'

# 缓冲区使用情况
watch -n 1 'cat /proc/sys/net/ipv4/tcp_rmem && cat /proc/sys/net/ipv4/tcp_wmem'

💫 最终建议

"没有最好的配置,只有最适合的配置"。网络优化是一个持续的过程,需要结合具体的业务特征、硬件环境和流量模式进行调优。建议从本文提供的方案出发,建立完善的监控体系,基于数据驱动进行持续的优化迭代。


📖 参考文献与扩展阅读

  1. Linux内核官方文档 - 网络参数调优
  2. Google BBR拥塞控制算法论文
  3. Cloudflare网络优化实践
  4. AWS性能调优指南
  5. Linux网络栈深入解析
相关推荐
亿坊电商38 分钟前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
ha20428941942 小时前
Linux操作系统学习之---线程池
linux·c++·学习
努力搬砖的咸鱼2 小时前
容器之间怎么通信?Docker 网络全解析
网络·docker·云原生·容器
gfdgd xi3 小时前
GXDE 内核管理器 1.0.1——修复bug、支持loong64
android·linux·运维·python·ubuntu·bug
deng-c-f4 小时前
Linux C/C++ 学习日记(43):dpdk(六):dpdk实现发包工具:UDP的发包,TCP的泛洪攻击
linux·dpdk·泛洪
我命由我123454 小时前
Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)
java·运维·服务器·数据库·后端·java-ee·后端框架
拥友LikT4 小时前
惠普DL380,Bios设置了U盘启动以后,读不到U盘(其他品牌服务器解决思路类似)
服务器·系统安装
我系真滴菜4 小时前
EMQX服务器调试
运维·服务器
代码AI弗森4 小时前
Vultr × Caddy 多站点反向代理 + 负载均衡网关系统实战
运维·负载均衡
电鱼智能的电小鱼4 小时前
基于电鱼 ARM 工控机的井下AI故障诊断方案——让煤矿远程监控更智能、更精准
网络·arm开发·人工智能·算法·边缘计算