0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

总结一些常见网络相关的内核参数

阿铭linux 2018-01-16 16:14 次阅读

谈到内核大家会觉得很神秘,关于内核参数的调整更是觉得云里雾里的。其实,并没有大家想象的那么难,平时对它们的调整也是很少用到。

也许你有经历,想了解一些内核参数的作用,然后去网上搜了很多文档,结果发现大多都一样,而且没有人能够说的很详细。下面是我总结的几个跟网络相关的参数,希望对你有所帮助。当然,我也不保证理解的一定到位,如果你有更好的理解,请留言回复!
总结一些常见网络相关的内核参数

1net.ipv4.tcp_max_tw_buckets

对于tcp连接,服务端和客户端通信完后状态变为timewait,假如某台服务器非常忙,连接数特别多的话,那么这个timewait数量就会越来越大。毕竟它也是会占用一定的资源,所以应该有一个最大值,当超过这个值,系统就会删除最早的连接,这样始终保持在一个数量级。

这个数值就是由net.ipv4.tcp_max_tw_buckets这个参数来决定的。CentOS7系统,你可以使用sysctl -a |grep tw_buckets来查看它的值,默认为32768,你可以适当把它调低,比如调整到8000,毕竟这个状态的连接太多也是会消耗资源的。

但你不要把它调到几十、几百这样,因为这种状态的tcp连接也是有用的,如果同样的客户端再次和服务端通信,就不用再次建立新的连接了,用这个旧的通道,省时省力。

2net.ipv4.tcp_tw_recycle=1

该参数的作用是快速回收timewait状态的连接。上面虽然提到系统会自动删除掉timewait状态的连接,但如果把这样的连接重新利用起来岂不是更好。所以该参数设置为1就可以让timewait状态的连接快速回收,它需要和下面的参数配合一起使用。

3net.ipv4.tcp_tw_reuse=1

该参数设置为1,将timewait状态的连接重新用于新的TCP连接,要结合上面的参数一起使用。

4net.ipv4.tcp_syncookies=1

tcp三次握手中,客户端向服务端发起syn请求,服务端收到后,也会向客户端发起syn请求同时连带ack确认,假如客户端发送请求后直接断开和服务端的连接,不接收服务端发起的这个请求,服务端会重试多次。

这个重试的过程会持续一段时间,当这种状态的连接数量非常大时,服务器会消耗很大的资源,从而造成瘫痪,正常的连接进不来,这种恶意的半连接行为其实叫做syn flood攻击。

设置为1,是开启SYN Cookies,开启后可以避免发生上述的syn flood攻击。开启该参数后,服务端接收客户端的ack后,再向客户端发送ack+syn之前会要求client在短时间内回应一个序号,如果客户端不能提供序号或者提供的序号不对则认为该客户端不合法,于是不会发ack+syn给客户端,更涉及不到重试。

5net.ipv4.tcp_max_syn_backlog

该参数定义系统能接受的最大半连接状态的tcp连接数。客户端向服务端发送了syn包,服务端收到后,会记录一下,该参数决定最多能记录几个这样的连接。我的CentOS7系统,默认是256,当有syn flood攻击时,这个数值太小则很容易导致服务器瘫痪,实际上此时服务器并没有消耗太多资源(cpu、内存等),所以可以适当调大它,比如调整到30000。

6net.ipv4.tcp_syn_retries

该参数适用于客户端,它定义发起syn的最大重试次数,默认为5,建议改为2。

7 net.ipv4.tcp_synack_retries

该参数适用于服务端,它定义发起syn+ack的最大重试次数,默认为5,建议改为2,可以适当预防syn flood攻击。

8net.ipv4.ip_local_port_range

该参数定义端口范围,系统默认保留端口为1024及以下,以上部分为自定义端口。这个参数适用于客户端,当客户端和服务端建立连接时,比如说访问服务端的80端口,客户端随机开启了一个端口和服务端发起连接,这个参数定义随机端口的范围。默认为3276861000,建议调整为102561000。

9net.ipv4.tcp_fin_timeout

tcp连接的状态中,客户端上有一个是FIN-WAIT-2状态,它是状态变迁为timewait前一个状态。该参数定义不属于任何进程的该连接状态的超时时间,默认值为60,建议调整为6。

10net.ipv4.tcp_keepalive_time

tcp连接状态里,有一个是keepalived状态,只有在这个状态下,客户端和服务端才能通信。正常情况下,当通信完毕,客户端或服务端会告诉对方要关闭连接,此时状态就会变为timewait,如果客户端没有告诉服务端,并且服务端也没有告诉客户端关闭的话(例如,客户端那边断网了),此时需要该参数来判定。

比如客户端已经断网了,但服务端上本次连接的状态依然是keepalived,服务端为了确认客户端是否断网,就需要每隔一段时间去发一个探测包去确认一下看看对方是否在线。这个时间就由该参数决定。它的默认值为7200(单位为秒),建议设置为30。

11 net.ipv4.tcp_keepalive_intvl

该参数和上面的参数是一起的,服务端在规定时间内发起了探测,查看客户端是否在线,如果客户端并没有确认,此时服务端还不能认定为对方不在线,而是要尝试多次。该参数定义重新发送探测的时间,即第一次发现对方有问题后,过多久再次发起探测。

默认值为75秒(单位为秒),可以改为3。

12 net.ipv4.tcp_keepalive_probes

第10和第11个参数规定了何时发起探测和探测失败后再过多久再发起探测,但并没有定义一共探测几次才算结束。该参数定义发起探测的包的数量。默认为9,建议设置2。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40282
  • 参数
    +关注

    关注

    11

    文章

    1832

    浏览量

    32197

原文标题:常见网络相关的内核参数调整

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux一些常见问题——内核编译常见错误

    Linux一些常见问题——内核编译常见错误编译2.6.31内核后重启出现insmod: error inserting '/lib/dm-r
    发表于 02-20 15:22

    关于FPGA的一些典型问题总结

    关于FPGA的一些典型问题总结
    发表于 11-04 13:05

    NIOS II 常见问题总结

    NIOS II 常见问题总结,如果你想要Altera的FPGA做嵌入式设计,肯定要涉及到NIOS II的使用,本文总结一些NIOS II的常见
    发表于 12-01 15:43 14次下载

    kali一些基础安装总结

    kali一些基础安装总结,有兴趣的同学可以参考下载看看啦。
    发表于 03-29 11:12 0次下载

    关于二叉树一些数据结构和算法相关的题目

    最近总结一些数据结构和算法相关的题目,这是第篇文章,关于二叉树的。
    的头像 发表于 02-07 13:57 3195次阅读

    C++的一些试题资料总结免费下载

    本文档的主要内容详细介绍的是C++的一些试题资料总结免费下载。
    发表于 01-29 10:04 6次下载
    C++的<b class='flag-5'>一些</b>试题资料<b class='flag-5'>总结</b>免费下载

    2019美西展一些总结分享

    2019年第54届美国西部国际安防展(以下简称“美西展”)已经结束,近期国外安防媒体及行业人士亦纷纷总结了美西展的参展感受,本文摘选一些观点进行分享,望有助于国内从业人士了解国外市场。
    的头像 发表于 05-07 14:26 3475次阅读

    一些常见的PCB原型设计和装配神话解析

    随着我们的电子设备越来越小,PCB原型制作越来越复杂。以下是一些常见的PCB原型设计和装配神话,适当地被揭穿。了解这些神话和相关事实将帮助您克服与PCB布局和装配相关
    的头像 发表于 08-06 09:03 2207次阅读

    总结一些常用的电平标准资料下载

    电子发烧友网为你提供总结一些常用的电平标准资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-13 08:46 3次下载
    <b class='flag-5'>总结</b><b class='flag-5'>一些</b>常用的电平标准资料下载

    单片机学习之路一些常见的疑问也是我的个人学习总结

    单片机学习之路一些常见的疑问也是我的个人学习总结
    发表于 11-14 11:51 22次下载
    单片机学习之路<b class='flag-5'>一些</b><b class='flag-5'>常见</b>的疑问也是我的个人学习<b class='flag-5'>总结</b>

    单片机学习之路一些常见的疑问也是我的个人学习总结

    单片机学习之路一些常见的疑问也是我的个人学习总结
    发表于 11-14 15:21 12次下载
    单片机学习之路<b class='flag-5'>一些</b><b class='flag-5'>常见</b>的疑问也是我的个人学习<b class='flag-5'>总结</b>

    电路设计的一些经验总结

    电路设计的一些经验总结
    发表于 12-02 13:57 44次下载

    学习linux内核一些建议

    学习linux内核,这个可不像学门语言,c或者java个月或者3月你就能精通掌握。学习linux内核是需要
    发表于 05-07 15:20 618次阅读
    学习linux<b class='flag-5'>内核</b>的<b class='flag-5'>一些</b>建议

    纳米软件科普:一些关于S参数常见问题的问答

    网络分析仪常用被用来测试器件的S参数,本篇文章纳米软件Namisoft小编将为大家整理一些关于S参数常见问题问答,下面
    的头像 发表于 02-02 10:49 1246次阅读

    TCP相关内核参数总结

    在Linux上做网络应用的性能优化时,般都会对TCP相关内核参数进行调节,特别是和缓冲、队列有关的
    的头像 发表于 11-10 15:17 793次阅读
    TCP<b class='flag-5'>相关</b>的<b class='flag-5'>内核</b><b class='flag-5'>参数</b><b class='flag-5'>总结</b>