Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优.光TCP的调优参数就有50多个.在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数.在此分享出来,希望对大家有所帮助. 调优清单 好了,在这里先列出调优清单.请记住,这里只是笔者在内网进行TCP内核参数调优的经验,仅供参考.同时,笔者还会在余下的博客里面详细解释了为什么要进行这些调优! 序号 内核参数 值 备注 1.1 /proc/sys/net/ipv4/tcp_max_syn_backlog 2048…
工作当中遇到oracle运行时CPU占用率达到90%以上,调小以下参数值后恢复正常. fs.file-max = 65536 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-n…
Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭: net.ipv4.tcp_tw_reuse = 1 表示开启重用.允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭: net.ipv4.tcp_tw_recycle = 1 表示开启T…
参数 somaxconn /proc/sys/net/core/somaxconn 对于TCP连接,Client和Server连接需要三次握手来建立连接,Server端监听状态会由LISTEN切换为ESTABLISHED,此时accept函数返回.该参数就是设置连接建立之前,即三次握手完成之前,也就是accept函数返回之前,连接队列的大小的最大值.这个连接队列大小参数是由listen函数的第二个参数设置的.但会受somaxconn的限制. somaxconn参数是全局,默认为128. 可能直接…
Linux在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf),而不需要重新引导系统,这个功能是通过/proc虚拟文件系统实现的. 在/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改, 可以通过更改/proc/sys中内核参数对应的文件达到修改内核参数的目的(修改过后,保存配置文件就马上自动生效),不过重新启动机器后之前修改的参数值会失效,所以只能是一种临时参数变更方案.(适合调试内核参数优化值的时候使用,如果设置值有问题,重启服…
问题 公司用浏览器访问线上服务一会失败一会成功,通过ssh连接服务器排查时发现ssh也是这样: 检查 抓包后发现建立连接的请求已经到了服务器,但它没有响应: 纠结了好久,后来在腾讯云技术支持及查了相关资料后发现是开启了net.ipv4.tcp_tw_recycle导致的,将其设为0即可解决: 原因 收集了几个与TIME_WAIT相关的内核参数: net.ipv4.tcp_timestamps 默认开启(1),数据包加时间戳,需要两端都开启,可以防止高速率宽带时引起的序号回绕(序号不够用重新开始了…
[20191108]内核参数tcp_keepalive与sqlnet.ora expire_time的一些总结.txt --//前几天在做12c DCD SQLNET.EXPIRE_TIME相关测试时,在11g数据库遇到1个古怪的问题,就是设置sqlnet.expire_time无效.不知道为--//什么?以前做过类似测试就是在两个都设置的情况下,sqlnet.ora expire_time优先. --//我当时的情况如下,设置内核参数如下:net.ipv4.tcp_keepalive_time…
基础知识 linux系统的组成 内核(kerner) 根文件系统(rootfs) 内核提供操作系统的功能,根文件系统包含常用的一些工具,这些工具.这些工具的运行离不开glibc库文件. 程序:二进制程序文件 库:库是函数的集合,用来实现接口调用等功能.程序的运行依赖这些库文件 Linux内核的功能:文件系统管理.进程管理.网络管理.驱动程序.内存管理等 CentOS 6 CentOS 6 启动流程: 4步 POST--->MBR--->GRUB--->加载内核 POST:Power-On…
有助于提高网络性能和吞吐量的参数 net.core.somaxconn = 128 已完成连接队列(completed connection queue) (1)三次握手已经完成,但还未被应用层接收(accept),但也处于ESTABLISHED状态. (2)队列长度由listen的backlog参数和内核的 net.core.somaxconn 参数共同决定. (3)当这个队列满了之后,不管未完成连接队列是否已满,是否启用syncookie,都不在接收新的SYN请求.(该特性跟内核版本有关)…
几乎所有的内核模块,包括内核核心模块和驱动程序,都在/proc/sys 文件系统下提供了某些配置文件以提供用户调整模块的属性和行为.通常一个配置文件对应一个内核参数,文件名就是参数的名字,文件的内容是参数的值. 我们可以通过命令sysctl -a 查看所有这些内核参数.下面说明与网络编程关系较为紧密的部分内核参数. 一. / proc/sys/fs 目录下的部分文件        /proc/sys/fs 目录下的内核参数都与文件系统有关.对于服务器程序来说,其中最重要的是如下的两个参数: /p…