Linux高并发应用类型对系统内核的优化

Linux操作系统内核参数优化net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30写到/etc/sysctl.conf 文件中,并执行./sbin/sysctl -p 使配置生效。解释:net.ipv4.tcp_max_tw_buckets选项用来设定timewait的数量,默认是180 000,这里设为6000。net.ipv4.ip_local_port_range选项用来设定允许系统打开的端口范围。net.ipv4.tcp_tw_recycle选项用于设置启用timewait快速回收。net.ipv4.tcp_tw_reuse选项用于设置开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接。net.ipv4.tcp_syncookies选项用于设置开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies进行处理。net.core.somaxconn选项的默认值是128, 这个参数用于调节系统同时发起的tcp连接数,在高并发的请求中,默认的值可能会导致链接超时或者重传,因此,需要结合并发请求数来调节此值。net.core.netdev_max_backlog选项表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目。net.ipv4.tcp_max_orphans选项用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤立连接将立即被复位并打印出警告信息。这个限制只是为了防止简单的DoS攻击。不能过分依靠这个限制甚至人为减小这个值,更多的情况下应该增加这个值。net.ipv4.tcp_max_syn_backlog选项用于记录那些尚未收到客户端确认信息的连接请求的最大值。对于有128MB内存的系统而言,此参数的默认值是1024,对小内存的系统则是128。net.ipv4.tcp_synack_retries参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。net.ipv4.tcp_syn_retries选项表示在内核放弃建立连接之前发送SYN包的数量。net.ipv4.tcp_fin_timeout选项决定了套接字保持在FIN-WAIT-2状态的时间。默认值是60秒。正确设置这个值非常重要,有时即使一个负载很小的Web服务器,也会出现大量的死套接字而产生内存溢出的风险。net.ipv4.tcp_syn_retries选项表示在内核放弃建立连接之前发送SYN包的数量。如果发送端要求关闭套接字,net.ipv4.tcp_fin_timeout选项决定了套接字保持在FIN-WAIT-2状态的时间。接收端可以出错并永远不关闭连接,甚至意外宕机。net.ipv4.tcp_fin_timeout的默认值是60秒。需要注意的是,即使一个负载很小的Web服务器,也会出现因为大量的死套接字而产生内存溢出的风险。FIN-WAIT-2的危险性比FIN-WAIT-1要小,因为它最多只能消耗1.5KB的内存,但是其生存期长些。net.ipv4.tcp_keepalive_time选项表示当keepalive启用的时候,TCP发送keepalive消息的频度。默认值是2(单位是小时)。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java LinkedHashMap forEach()方法与示例

LinkedHashMap类的forEach()方法 (LinkedHashMap Class forEach() method) forEach() method is available in java.util package. java.util包中提供了forEach()方法 。 forEach() method is used to perform the specified action for every entry (key-value) pairs in the …

SimpleDateFormat线程不安全的5种解决方案!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)1.什么是线程不安全?线程不安全也叫非线程安全,是指多线程执行中,程序的执行结果和预期的…

Java LineNumberReader mark()方法与示例

LineNumberReader类mark()方法 (LineNumberReader Class mark() method) mark() method is available in java.io package. mark()方法在java.io包中可用。 mark() method is used to set the current position in this LineNumberReader stream and whenever we call to reset…

mac地址漂移flapping的前因后果

一、什么是mac地址flapping?mac地址漂移是指:在同一个vlan内,mac地址表项的出接口出现变更。如图:二、产生的原因1、因为环路或VRRP切换,导致的MAC地址漂移告警。(不予关注)2、因为无线用户漫游&#xff0…

时间转换竟多出1年!Java开发中的20个坑你遇到过几个?

前言最近看了极客时间的《Java业务开发常见错误100例》,再结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读~1. 六类典型空指针问题包装类型的空指针问题级联调用的空指针问题Equals方法左边的空指针问题ConcurrentHas…

android去掉顶部标题栏

在AndroidManifest.xml中实现&#xff1a; 注册Activity时加上如下的一句配置就可以实现。 <activity android:name".Activity"android:theme"android:style/Theme.NoTitleBar"></activity>

Oracle RAC Failover 详解

2019独角兽企业重金招聘Python工程师标准>>> Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影响用户的使用&#xff0c;连接到故障节点的用户会被自动转移到健康节…

超级详细的Spring Boot 注解总结

日常编程中我相信大家肯定都用过spring&#xff0c;也用过spring的注解&#xff0c;哪怕面试的时候也经常会被问到一些spring和spring boot注解的作用和含义等&#xff0c;那么这篇就带大家来看看超级详细的Spring Boot 注解总结&#xff01;搞起!我们先来看看本篇会讲到的注解…

Android下 布局加边框 指定背景色 半透明

文章转自&#xff1a;http://www.cnblogs.com/bavariama/archive/2013/09/25/3338375.html 背景设置为自定义的shape文件&#xff1a; <!-- <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/a…

inputstream示例_Java InputStream available()方法与示例

inputstream示例InputStream类的available()方法 (InputStream Class available() method) available() method is available in java.io package. available()方法在java.io包中可用。 available() method is used to return the number of available bytes left for reading …

json前后台传值

谈到JSON,简单的说就是一种数据交换格式。近年来&#xff0c;其在服务器之间交换数据的应用越来越广&#xff0c;相比XML其格式更简单、编解码更容易、扩展性更好&#xff0c;所以深受开发人员的喜爱。 下面简单的写一下在项目中前后台json传值的一个小例子&#xff0c;供大家参…

一个ThreadLocal和面试官大战30个回合

开场杭州某商务楼里&#xff0c;正发生着一起求职者和面试官的battle。面试官&#xff1a;你先自我介绍一下。安琪拉&#xff1a;面试官你好&#xff0c;我是草丛三婊&#xff0c;最强中单&#xff08;妲己不服&#xff09;&#xff0c;草地摩托车车手&#xff0c;第21套广播体…

ASP.NET 网站项目 EF 的简单操作例子

ASP.NET 网站项目 EF 的简单操作例子&#xff1a;操作代码&#xff1a;using EFTest.Models; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Mvc;namespace EFTest.Controllers {public class D…

java enummap_Java EnumMap containsValue()方法与示例

java enummapEnumMap类containsValue()方法 (EnumMap Class containsValue() method) containsValue() method is available in java.util package. containsValue()方法在java.util包中可用。 containsValue() method is used to check whether the given value element (val_…

mysql主主互备架构

mysql主主互备架构企业级mysql集群具备高可用&#xff0c;可扩展性&#xff0c;易管理&#xff0c;低成本的特点。mysql主主互备就是企业中常用的一个解决方案。在这种架构中&#xff0c;虽然互为主从&#xff0c;但同一时刻只有一台mysql 可读写&#xff0c;一台mysqk只能进行…

图文并茂的聊聊Java内存模型!

在面试中&#xff0c;面试官经常喜欢问&#xff1a;『说说什么是Java内存模型(JMM)&#xff1f;』面试者内心狂喜&#xff0c;这题刚背过&#xff1a;『Java内存主要分为五大块&#xff1a;堆、方法区、虚拟机栈、本地方法栈、PC寄存器&#xff0c;balabala……』面试官会心一笑…

JS根据文本框内容匹配并高亮显示

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script type"text/javascript">function SearchCompare() {// 获取搜索字符串var searchText document.getElementById("SearchCompa…

AngularJS入门心得2——何为双向数据绑定

前言&#xff1a;谁说Test工作比较轻松&#xff0c;最近在熟悉几个case&#xff0c;差点没疯。最近又是断断续续的看我的AngularJS&#xff0c;总觉得自己还是没有入门&#xff0c;可能是自己欠前端的东西太多了&#xff0c;看不了几行代码就有几个常用函数不熟悉的。看过了大漠…

Java ClassLoader getParent()方法与示例

ClassLoader类的getParent()方法 (ClassLoader Class getParent() method) getParent() method is available in java.lang package. getParent()方法在java.lang包中可用。 getParent() method is used to return the parent class loader for delegations. getParent()方法用…

Java中那些内存泄漏的场景!

虽然Java程序员不用像C/C程序员那样时刻关注内存的使用情况&#xff0c;JVM会帮我们处理好这些&#xff0c;但并不是说有了GC就可以高枕无忧&#xff0c;内存泄露相关的问题一般在测试的时候很难发现&#xff0c;一旦上线流量起来可能马上就是一个诡异的线上故障。内存泄露定义…