美文网首页
修改ARP缓存表大小

修改ARP缓存表大小

作者: 404d67ac8c12 | 来源:发表于2022-12-03 21:45 被阅读0次

    在下发Mininet的ARP缓存表表项时,出现了如下的错误信息:

    SIOCSARP: No buffer space available

    这是由于ARP表是缓存在内存中的,超过了系统对ARP缓存表大小的限制,需要修改如下的文件:

    /proc/sys/net/ipv4/neigh/default/gc_thresh1
    /proc/sys/net/ipv4/neigh/default/gc_thresh2
    /proc/sys/net/ipv4/neigh/default/gc_thresh3
    

    这3个文件的含义如下所示:

    gc_thresh1
    存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。
    gc_thresh2
    保存在 ARP 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。缺省值是 512。
    gc_thresh3
    保存在 ARP 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。

    因此只需预估下需要的ARP缓存表表项数目,对他们进行修改就可以了。
    注意,如果和我一样是在下发mininet的ARP表时遇到的问题,gc_thresh3指的是所有OVS(虚拟交换机)的ARP表表项总和。

    重新配置方法如下所示(需要用echo,否则写不进去):

    echo 512 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
    echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
    echo 10240 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
    

    相关文章

      网友评论

          本文标题:修改ARP缓存表大小

          本文链接:https://www.haomeiwen.com/subject/zbjmfdtx.html