博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
connect: No buffer space available
阅读量:5097 次
发布时间:2019-06-13

本文共 1336 字,大约阅读时间需要 4 分钟。

1 问题:ping或者telnet设备显示故障

[root@localhost ~]# ping 192.168.163.89

connect: No buffer space available

 

2 原因:

ARP缓存过小导致的。

内核维护的arp表过于庞大, 发生抖动, 因此导致了这种情况

 

几个内核ARP参数:

=================================
gc_stale_time
决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。
gc_thresh1
存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。
gc_thresh2
保存在 ARP 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。缺省值是 512。
gc_thresh3
保存在 ARP 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。

base_reachable_time

设置arp缓存的老化时间,默认是30s

=================================

比如arp -an|wc -l的结果是300左右, 那么应当调高gc_thresh各项数值,防止抖动的发生:

我的值是692,当然要调整了!!

命令如下:

echo "512" > /proc/sys/net/ipv4/neigh/default/gc_thresh1

echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "4096" > /proc/sys/net/ipv4/neigh/default/gc_thresh3

echo "60" > /proc/sys/net/ipv4/neigh/eth0/base_reachable_time

echo "120" > /proc/sys/net/ipv4/neigh/default/gc_stale_time

也可以写入内核配置文件中

# vim /etc/sysctl.conf

在sysctl.conf最后面写入下面三行,如下

net.ipv4.neigh.default.gc_thresh1 = 512

net.ipv4.neigh.default.gc_thresh2 = 2048

net.ipv4.neigh.default.gc_thresh3 = 4096

net.ipv4.neigh.eth0.base_reachable_time = 60

net.ipv4.neigh.default.gc_stale_time = 120

下面这句的作用是:当有个多个网卡,每个网卡在不同的网段,那么可以过滤掉非本网卡ARP请求的回应;但是如果多个网卡的ip在一个网段,那么就不行了。

net.ipv4.conf.all.arp_filter = 1

转载于:https://www.cnblogs.com/gengwudaxia/p/5955521.html

你可能感兴趣的文章
UVa401
查看>>
查看selinux的状态
查看>>
浅谈单调队列、单调栈【转载】
查看>>
[LintCode] 最小路径和
查看>>
S-GPRS车辆监控方案-转载
查看>>
Mapinfo重点及难点讲解-SQL查询
查看>>
AngularJS路由(转)
查看>>
兼容IE6-9,FF,Chrome的box-shadow效果(纯CSS)
查看>>
给互联网创业公司的8个建议
查看>>
20160115小记
查看>>
hdu 2526
查看>>
那些常用的git工具
查看>>
join()方法之我见
查看>>
希尔shell排序——java实现
查看>>
webService学习1----WSDL
查看>>
评估分类器性能的度量,像混淆矩阵、ROC、AUC等
查看>>
Scala - Spark Lambda“goesto“ => 分析
查看>>
mysql TIMESTAMPDIFF
查看>>
win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
查看>>
通过cmd查看环境变量名对应的环境变量值
查看>>