linux 内核调优记录-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 752935
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:32
个人简介

小公司研发总监,既当司令也当兵!

文章分类

全部博文(144)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2017-05-24 11:58:07

arp表溢出

问题描述:路由器连接clients变大时,出现部分人无法分配ip或无法上网;查看日志dmesg有很多“ipv4: neighbour table overflow.”打印
问题原因:arp表条目达到限制,新连接的client在路由器上无法正常解析、存储arp,导致网络异常
解决方法:把默认的arp条目限制提高

点击(此处)折叠或打开

  1. root@rippletek:~# sysctl net.ipv4.neigh.default.gc_thresh1
  2. net.ipv4.neigh.default.gc_thresh1 = 128
  3. root@rippletek:~# sysctl net.ipv4.neigh.default.gc_thresh2
  4. net.ipv4.neigh.default.gc_thresh2 = 512
  5. root@rippletek:~# sysctl net.ipv4.neigh.default.gc_thresh3
  6. net.ipv4.neigh.default.gc_thresh3 = 1024
  7. root@rippletek:~# sysctl net.ipv4.neigh.default.gc_interval
  8. net.ipv4.neigh.default.gc_interval = 30
  9. root@rippletek:~# sysctl net.ipv4.neigh.default.gc_stale_time
  10. net.ipv4.neigh.default.gc_stale_time = 60
见上文,arp几个常见配置参数和默认值。其中:
net.ipv4.neigh.default.gc_thresh1:存在于arp高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。
net.ipv4.neigh.default.gc_thresh2:保存在 arp 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。缺省值是 512。net.ipv4.neigh.default.gc_thresh3保存在 arp 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。
net.ipv4.neigh.default.gc_interval:每次运行gc后的停顿时间,缺省是30秒。
net.ipv4.neigh.defalut.gc_stale_time:决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。

根据实际使用人数调整arp表条目上限:

点击(此处)折叠或打开

  1. vi /etc/sysctl.conf
  2. net.ipv4.neigh.default.gc_thresh3 = 4096
  3. net.ipv4.neigh.default.gc_thresh2 = 2048
  4. net.ipv4.neigh.default.gc_thresh1 = 1024

  5. sysctl -p

time_wait连接过多导致路由器dhcps无法分配ip

问题描述:路由器在有大量client连接后,出现新client接入时分配ip地址缓慢或无法分配ip地址的情况。日志dmesg打印“no buffer space available”;使用netstat查看系统中有大量time_wait状态的连接。
问题原因:
大量time_wait状态的连接存在占用了系统资源,导致dhcp发送报文失败。
凯发app官方网站的解决方案:配置tcp time_wait状态的连接快速回收:

sysctl改两个内核参数就行了,如下:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
简单来说,就是打开系统的timewait重用和快速回收,至于怎么重用和快速回收,这个问题我没有深究,实际场景中这么做确实有效果。用netstat或者ss观察就能得出结论。
还有些朋友同时也会打开syncookies这个功能,如下:
net.ipv4.tcp_syncookies = 1

打开这个syncookies目的实际上是:“在服务器资源(并非单指端口资源,拒绝服务有很多种资源不足的情况)不足的情况下,尽量不要拒绝tcp的syn(连接)请求,尽量把syn请求缓存起来,留着过会儿有能力的时候处理这些tcp的连接请求”。
如果并发量真的非常非常高,打开这个其实用处不大。
阅读(4115) | 评论(0) | 转发(0) |
0

上一篇:openwrt: makefile 框架分析

下一篇:lua math 库

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图