linux内核多长时间删除一个arp表项 arp 黑洞

如何设置为什么旧的 arp 表项一直没有老化呢?

1. 缩短基础可达时间到 5 秒(实际波动在 2.5s~7.5s)

sysctl -w net.ipv4.neigh.default.base_reachable_time_ms=5000

2. 缩短陈旧条目保留时间到 5 秒

sysctl -w net.ipv4.neigh.default.gc_stale_time=5

3. 提高扫描频率到 2 秒一次

sysctl -w net.ipv4.neigh.default.gc_interval=2

原来还与如下参数(net.ipv4.neigh.default.gc_thresh1)有关

net.ipv4.neigh.default.gc_thresh1 = 2048

net.ipv4.neigh.default.gc_thresh2 = 4096

net.ipv4.neigh.default.gc_thresh3 = 8192

1. gc_thresh1:决定了删除的"积极性"

这是对您影响最大的参数。

  • 逻辑:如果当前 ARP 条目总数 小于 gc_thresh1 (2048),内核的垃圾回收器(GC)会认为内存非常充裕,处于"休眠"状态。
  • 后果:即使条目已经达到了 gc_stale_time(60秒)的老化条件,内核也完全不会去清理它。这些条目会一直留在 STALE 状态,直到条目总数超过 2048。
  • 结论:在您的 80 个 Pod 压测环境下,条目看起来永远不会老化删除,因为总数远达不到 2048。

2. gc_thresh2 和 gc_thresh3:决定了强制清理的频率

这两个参数只有在网络规模极大时才起作用:

  • gc_thresh2 (4096):一旦超过这个值,内核会每隔 5 秒强制启动一次清理。
  • gc_thresh3 (8192):一旦超过这个值,内核会在分配新条目前同步进行强制清理,速度最快,但也最消耗 CPU。

3. 真正控制"老化速度"的参数是谁?

如果您想让 ARP 老化得更快(比如从 REACHABLE 变到 STALE 再到消失),您应该调整以下参数:

  • 状态切换速度:由 base_reachable_time_ms 决定(默认 30s)。
  • 陈旧等待时间:由 gc_stale_time 决定(默认 60s)。
  • 物理删除动作:由 gc_thresh1 决定。
相关推荐
无足鸟ICT6 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.6 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯6 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF6 小时前
nmcli
linux·服务器·网络
qetfw7 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
明航咨询-陈老师8 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
szxinmai主板定制专家9 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
缓慢更新9 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮9 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong9 小时前
Linux 有两个 “版本“
linux·发行版·内核版本