linux网络 1, 优化网络设备接收队列

net.core.netdev_max_backlog=3000

该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

默认值:Red Hat

Linux release 9 (Shrike)默认为300

rhel5 默认为1000

建议值为3000

2, net.ipv4.conf.lo.accept_redirects

accept_redirects:该参数位于 /proc/sys/net/ipv4/conf/DEV/accept_redirects

(DEV表示具体的网络接口),如果你的主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经

过另外一个路由器,这时这个路由器就会给你发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向

icmp

信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0,或者使用“安全重定向”(见下文)

以消除安全性隐患。

net.ipv4.conf.lo.accept_redirects=0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.eth0.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

3, 打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。

net.ipv4.tcp_tw_recyle=1

net.ipv4.tcp_tw_reuse=1

10)

/proc/sys/net/ipv4/tcp_tw_recyle

打开快速

TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随

意修改这个值。

缺省设置:0

11)

/proc/sys/net/ipv4/tcp_tw_reuse

该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

缺省设置:0

下边的命令用来对连接数量非常大的服务器进行调优.

·对于同时支持很多连接的服务器,新的连接可以重新使用TIME-WAIT套接字. 这对于Web服务器非常有效:

如果你使用该命令,还要启动TIME-WAIT 套接字状态的快速循环功能:

图Figure

10-7显示出将这些功能启用,连接数量明显降低.因为每个TCP传输都包含远程客户端的协议信息缓存,所以有利于提高性能.缓存中存放round-trip时间、最大segment大小、拥塞窗口的信息。

4, 减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。

net.ipv4.tcp_fin_timeout=30

tcp_fin_timeout:在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,

在获 得B的ack确认包后,A就进入FIN WAIT2状态等待B的fin包然后给B发ack确认包。

这个参数就是用来设置A进入FIN WAIT2状态等待对方fin包的超时时间。

如果时间到了仍未收到对方的fin包就主动释放该会话。

参数值为整数,单位为秒,缺省为180秒

对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能

会断开连接或一直不结束连接或不可预料的进程死亡。默认值为

60 秒。过去在

2.2版本的内核中是 180

秒。您可以设置该值,但需要注意,如果您的机器为负

载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,

FIN-WAIT-2 sockets 的危险性低于

FIN-WAIT-1,因为它们最多只吃 1.5K

的内存,但是它们存在时间更长。另外参考

tcp_max_orphans。

·参数tcp_fin_timeout 是套接字关闭时,保持FIN-WAIT-2状态的时间。一个TCP连接以three-segment

SYN序列开始, 以three-segment FIN序列结束.均不保留数据.通过改变tcp_fin_timeout的值,

从FIN序列到内存可以空闲出来处理新连接的时间缩短了,使性能得到改进.改变这个值的前要经过认真的监测,避免因为死套接字造成内存溢出.

5, 减少TCP KeepAlive连接侦测的时间,使系统可以处理更多的连接。

net.ipv4.tcp_keepalive_time=1800

/proc/sys/net/ipv4/tcp_keepalive_time

该文件表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。

缺省设置:7200(2小时)

服务器的一个问题是,同一时刻的大量TCP连接里有很多的连接被打开但是没有使用.

TCP的keepalive功能检测到这些连接,缺省情况下,在2小时之后丢掉.

2个小时的可能导致内存过度使用,降低性能.因此改成1800秒(30分钟)是个更好的选择:

6, 增加TCP SYN队列长度,使系统可以处理更多的并发连接。

net.ipv4.tcp_max_syn_backlog=8192

/proc/sys/net/ipv4/tcp_max_syn_backlog

对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于

超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。如果

服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设为大于

1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持

TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如

果tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略所有发送给自己

的ICMP ECHO请求或那些广播地址的请求。

当服务器负载繁重或者是有很多客户端都是超长延时的连接故障,可能会导致half-open连接数量的增加。这对于Web服务器很来讲很平常,尤其有很多拨号客户时.这些half-open连接保存在

backlog connections 队列中.将这个值最少设置为4096 (缺省为1024).

即便是服务器不接收这类连接,设置这个值还能防止受到denial-of-service (syn-flood)的攻击.

7,

1) 优化系统套接字缓冲区

net.core.rmem_max=16777216

net.core.wmem_max=16777216

5) /proc/sys/net/core/rmem_default

该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。

缺省设置:110592

6) /proc/sys/net/core/rmem_max

该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。

缺省设置:131071

7) /proc/sys/net/core/wmem_default

该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

缺省设置:110592

8) /proc/sys/net/core/wmem_max

该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。

缺省设置:131071

·对于所有协议的队列,设置最大系统发送缓存(wmem) 和接收缓存(rmem)到8MB

这些设置指定了创建TCP套接字时为其分配的内存容量.

另外,使用如下命令发送和接收缓存.该命令设定了三个值:最小值、初始值和最大值:

第三个值必须小于或等于wmem_max和rmem_max。

8 打开TCP SYN cookie选项,有助于保护服务器免受SyncFlood攻击。

net.ipv4.tcp_syncookies=1

/proc/sys/net/ipv4/tcp_syncookies

该文件表示是否打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译。

同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载。

tcp_syncookies 参数类型:整型

只有在内核编译时选择了CONFIG_SYNCOOKIES时才会发生作用。当出现syn等候队列出现溢出时象对方发送syncookies。目的是为了防止syn

flood攻击。默认值是false。

注意:该选项千万不能用于那些没有收到攻击的高负载服务器,如果在日志中出现

synflood消息,但是调查发现没有收到synflood攻击,而是合法用户的连接负载过高的原因,你应该调整其它参数来提高服务器性能。参考:

tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.

syncookie严重的违背TCP协议,不允许使用TCP扩展,可能对某些服务导致严重的性能影响(如SMTP转发)。

开启TCP SYN cookies,保护服务器避免受syn-flood攻击,包括服务取决denial-of-service (DoS)

或者分布式服务拒绝distributed denial-of-service (DDoS) (仅适用Red Hat

Enterprise Linux AS)

9 关闭路由相关功能

net.ipv4.conf.lo.accept_source_route=0

net.ipv4.conf.all.accept_source_route=0

net.ipv4.conf.eth0.accept_source_route=0

net.ipv4.conf.default.accept_source_route=0

net.ipv4.conf.lo.accept_redirects=0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.eth0.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

net.ipv4.conf.lo.secure_redirects=0

net.ipv4.conf.all.secure_redirects=0

net.ipv4.conf.eth0.secure_redirects=0

net.ipv4.conf.default.secure_redirects=0

net.ipv4.conf.lo.send_redirects=0

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.eth0.send_redirects=0

net.ipv4.conf.default.send_redirects=0

/proc/sys/net/ipv4/*/secure_redirects

其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是

用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值

为启用。

send_redirects - 布尔类型

如果是router,发送重定向消息,默认值是TRUE

accept_redirects - 布尔类型

收发接收ICMP重定向消息。对于主机来说默认为True,对于用作路由器时默认值为False。

·以下命令使服务器忽略来自被列入网关的服务器的重定向。因重定向可以被用来进行攻击,所以我们只接受有可靠来源的重定向。

外,你可以配置接受或拒绝任何ICMP重定向。ICMP重定向是路由器传输路由信息的机制。比如,当网关接收到来自所接网络主机的Internet数据报

时,网关可以发送重定向信息到一台主机。网关检查路由表获得下一个网关的地址,第二个网关将数据报路由到目标网络.关闭这些重定向得命令如下:

·如果这个服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能:

10 优化TCP接收/发送缓冲区

net.ipv4.tcp_rmem=4096 87380 16777216

net.ipv4.tcp_wmem=4096 65536 16777216

25) /proc/sys/net/ipv4/tcp_wmem

该文件包含3个整数值,分别是:min,default,max

Min:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。

Default:为TCP

socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem中default的

值,一般要低于net.core.wmem中default的值。

Max:为TCP

socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。

缺省设置:4096 16384 131072

26) /proc/sys/net/ipv4/tcp_rmem

该文件包含3个整数值,分别是:min,default,max

Min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP

socket都至少会有这么多数量的内存用于接收缓冲。

Default: 为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的

net.core.wmem中default的值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的

默认值情况下,TCP 窗口大小为65535。

Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmem中max的值,今天选择参数

SO_SNDBUF则不受该值影响。

tcp_wmem - 三个整数的向量: min, default, max

min:为TCP socket预留用于发送缓冲的内存最小值。每个tcp

socket都可以在建议以后都可以使用它。默认值为4K。

default:为TCP

socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem_default

值,一般要低于net.core.wmem_default的值。默认值为16K。

max: 用于TCP

socket发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。

tcp_rmem - 三个整数的向量: min, default, max

min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下tcp

socket都至少会有这么多数量的内存用于接收缓冲,默认值为8K。

default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的

net.core.wmem_default

值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win:0是默认值情况下,tcp

窗口大小为65535。

max:用于TCP

socket接收缓冲的内存最大值。该值不会影响 net.core.wmem_max,今天选择参数

SO_SNDBUF则不受该值影响。默认值为 128K。默认值为87380*2 bytes。

11,

配置服务器拒绝接受广播风暴或者smurf 攻击attacks:

12,

·有些路由器针对广播祯发送无效的回应,每个都产生警告并在内核产生日志.这些回应可以被忽略:

13,

# don't cache ssthresh from previous

connection net.ipv4.tcp_no_metrics_save = 114,# Increase the maximum number of

skb-heads to be cachednet.core.hot_list_length = 25615,# Increase

the tcp-time-wait buckets pool sizenet.ipv4.tcp_max_tw_buckets =

36000016# Lower syn retry ratesnet.ipv4.tcp_synack_retries =

2net.ipv4.tcp_syn_retries = 317,# Set TCP Re-Ordering value in

kernel to ‘5′net.ipv4.tcp_reordering = 5

linux系统网络对时,Linux系统网络优化【转】相关推荐

  1. linux自动网络对时

    目标: linux自动网络对时 步骤: 1.编制定时任务,增加一行定时任务 crontab -e //增加如下行 0 7,13 * * * ntpdate pool.ntp.org; hwclock ...

  2. 计算机网络授时设置,网络授时系统,网络校时系统

    网络授时系统,网络校时系统网络授时系统,网络校时系统 网络授时系统,网络校时系统网络授时系统,网络校时系统 一.网络授时系统产品介绍: 网络授时系统是针对计算机.自动化装置等进行校时而研发的高科技设备 ...

  3. 网络电视服务器是什么系统,网络视频直播系统

    网络视频直播系统可以应客户的要求把活动现场的音频或视频信号经压缩后,传送到多媒体服务器上,在Internet上供广大网友或授权特定人群收听或收看. 现在网络直播系统分:直播软件或是硬件直播,硬件直播的 ...

  4. Linux系统重新对时,Linux系统时区不对怎么办?

    因为Linux系统在安装的时候需要选择系统时区,很多人在安装的时候没有注意,从而导致系统时间出错,出现这样的问题该如何解决呢?下面小编给大家介绍Linux系统修改时区的方法. 1.查看系统时间 #da ...

  5. linux查看网络连接命令,系统运维|使用netstat检测及监测网络连接

    大家好,我是邪恶君子!今天,邪恶就给大家分享一下,使用小小的一个netstat命令,就能让你检测出系统是否处于安全状态!!! 这篇文档,复杂°:简单:难易°:易.坚决让小白都看得懂,学得会,掌握牢,上 ...

  6. gps网络对时Linux,gps网络时间对时服务器的功能简介

    gps网络时间对时服务器的功能简介 将通信局域网上各种通信设备或计算机设备的时间信息基于UCT时间偏 差限定在足够小的范围内,这种同步过程叫做网络时间同步. 有源同步和无源同步 任何时间应用系统都应该 ...

  7. linux内核网络初始化,Linux内核--网络栈实现分析

    本文分析基于内核Linux Kernel 1.2.13 以后的系列博文将深入分析Linux内核的网络栈实现原理,这里看到曹桂平博士的分析后,也决定选择Linux内核1.2.13版本进行分析. 原因如下 ...

  8. linux 挂载网络文件系统,linux 挂载网络文件系统

    网络文件系统介绍 linux NFS 配置步骤 linux NFS 配置步骤 NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档 ...

  9. linux内核网络协议栈--linux bridge(十九)

    1 . 前言 本文是参考附录上的资料整理而成,以帮助读者更好的理解kernel中brdige 模块代码. 2. 网桥的原理 2.1 桥接的概念 简单来说,桥接就是把一台机器上的若干个网络接口" ...

最新文章

  1. 论文推荐:ReLICv2 ,新的自监督学习能否在ResNet 上超越监督学习?
  2. asp.net模版页面的高级应用
  3. boost::hof::unpack用法的测试程序
  4. PathRemoveFileSpec函数
  5. Nginx负载均衡实现之用户手动选择与DNS轮询
  6. java学习(123):treeset排序集合
  7. firewall mysql端口_Centos7 firewall开放3306端口
  8. 搭建MVC及WebAPI项目框架时碰到的问题集合
  9. 一加9R将推12+256GB新版本:骁龙870+120Hz高刷屏
  10. unity常连接mysql,Unity使用BestHttp插件时Socket.IO保持长连接的问题
  11. compose部署redis和mysql_浅析docker-compose部署mysql无法访问的问题
  12. python 中self
  13. [转]网店博客营销之微博实战技巧:还没有做微博的掌柜看过来
  14. “形象代言人”与“抽风式管理”
  15. css标签选择器、类名选择器、多类名选择器
  16. java jboss_jboss配置方法简明教程
  17. 决策树CART 代价复杂度剪枝
  18. 二极管的分类、电路符号及万用表测发光二极管正负极
  19. 9 款最好的免费博客网站对比
  20. 龙芯CPU芯片介绍说明

热门文章

  1. SAP Spartacus 服务器端渲染优化引擎的参数 SsrOptimizationOptions
  2. Angular应用 vendor.js里的magic number 16384是什么含义
  3. 一个好用的时间管理Chrome扩展 - Calendar and Countdown
  4. SAP Spartacus的用户登录请求
  5. 自定义SAP Spartacus的产品搜索API参数 - Product Search
  6. 使用Windows10 software center升级版本1909
  7. 利用Object.defineProperty挂接set钩子,监控对象属性的修改事件
  8. UI Component in CRM WebUI and Hybris
  9. 使用SAP云平台portal service的site manager创建portal实例
  10. sap-statistics in SAP UI5 http roundtrip