优化Linux内核参数提高服务器负载能力
首先,编辑一下/etc/sysctl.conf 文件,调整一下以下参数,如果没有经过优化的Linux内核可能没有这些参数,那么把需要补充的复制添加进去即可,其他设置默认即可,不需要理解。
记得修改完成之后记得执行以下命令生效
sysctl –p
vim /etc/sysctl.conf
fs.file-max=65535 //控制文件打开数量,也就是一次打开这些数量(执行ulimit -u,这里与命令返回的数量一致即可)
net.ipv4.tcp_max_tw_buckets = 5000 //等待响应时间,单位是毫秒,这里是5秒,如果系统超时5秒踢出去。
net.ipv4.tcp_sack = 0 #关闭tcp_sack 。启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
net.ipv4.tcp_window_scaling = 0 //关闭tcp_window_scaling。启用 RFC 1323 定义的 window scaling;要支持超过 64KB 的窗口,必须启用该值。
net.ipv4.tcp_tw_recyde = 1 ##启用timewait快速回收
net.core.somaxconn = 262144 #web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而Nginx内核参数定义的MGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值
net.core.netdev_max_backlog = 262144 #每个网络接口接收数据包的速率比内核处理这些包的速度快时,允许送到队列的数据包最大数目
net.ipv4.tcp_max_orphans = 262144 #系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即可被复位并打印出警告信息。这个限制仅仅为了防止简单的DOS攻击,不能过分依靠它或者人为地减少这个值,
更应该增加这个值(如果增加了内存之后)
net.ipv4.tcp_max_syn_backlog = 262144 //记录的那些尚未收到客户端确认信息的连接请求最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128
net.core.wmem_default = 8388608 #定义默认的发送窗口大小;对于更大的 BDP 来说,这个大小也应该更大。
net.core.rmem_default = 8388608 #指定了接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max = 16777216 #指定了接收套接字缓冲区大小的最大值(以字节为单位)。
net.core.wmem_max = 16777216 #定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大。
net.ipv4.tcp_timestamps = 0 //时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接收这种“异常”的数据包。这里需要关掉
net.ipv4.tcp_fin_timeout = 1 //如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60秒。2.2内核通常值是180,你可以按这个设置,但要记住的是,即使你的机器是一个轻负载的WEB服务器,
也有因为大量的死套接字而内存溢出的风险,FIN-WAIT-2的危险性比FIN-WAIT-1的要小,因为它最多只是吃掉1.5K的内存,但是他们的生存期长些
net.ipv4.tcp_synack_retries = 1 #为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量
net.ipv4.tcp_syn_retries = 1 #在内核放弃建立连接之前发送SYN包的数量
net.ipv4.tcp_keepalive_time = 30 #当keepalive启用的时候,TCP发送keepalive消息的频度。缺省值是2小时
net.ipv4.tcp_syncookies = #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 //表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.ip_local_port_range = 102465000 #表示用于向外连接的端口范围表示用于向外连接的端口范围
net.inet.udp.checksum= 1 #防止不正确的udp包的攻击
优化Linux内核参数提高服务器负载能力的更多相关文章
- 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
优化Linux内核参数/etc/sysctl.conf sysctl <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...
- (转)/etc/sysctl.conf 调优 & 优化Linux内核参数
/etc/sysctl.conf 调优 & 优化Linux内核参数 from: http://apps.hi.baidu.com/share/detail/15652067 http://ke ...
- 修改Linux内核参数提高Nginx服务器并发性能
当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TI ...
- 修改Linux内核参数提高Nginx服务器在高的时候的性能
并发 Linux下高并发的Nginx服务器,当TCP TIME_WAIT套接字数量经常达到两.三万,服务器很容易被拖死.通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数 ...
- /etc/sysctl.conf 调优 & 优化Linux内核参数
from: http://apps.hi.baidu.com/share/detail/15652067 http://keyknight.blog.163.com/blog/static/36637 ...
- 优化Linux内核参数
转自:http://www.centoscn.com/CentOS/config/2013/0804/992.html vim /etc/sysctl.conf 1.net.ipv4.tcp_max_ ...
- linux内核参数注释与优化
目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少 ...
- (转)linux内核参数注释与优化
linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/13364 ...
- 转载:Linux内核参数的优化(1.3.4)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19615.html 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改 ...
随机推荐
- bxslider使用教程
bxSlider下载+参数说明 "bxSlider"就是一款响应式的幻灯片js插件 bxSlider特性 充分响应各种设备,适应各种屏幕: 支持多种滑动模式,水平.垂直以及淡入淡出 ...
- glusterfs 步骤
一.下载yum源 # wget http://download.gluster.org/pub/gluster/glusterfs/3.6/LATEST/CentOS/glusterfs-epel.r ...
- 使用mui框架----移动端页面在所有屏幕下自适应
写移动端怎么会不用到框架呢? 现在比较火的是mui.amaze UI 之类的,mui是现在最灵活轻便的一个框架,能够从pc到移动灵活的自适应, 只需要调用他定义的类名就能使用,非常方便,只是需要自己来 ...
- linux指令--ls
本篇博客转自http://www.cnblogs.com/peida/archive/2012/10/23/2734829.html,在原作者基础上做了修改和总结. ls命令是linux下最常用的命令 ...
- VMware10不能安装64位(linux)系统,提示此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
今天下载VM10准备安装Ubuntu14.04,一如既往的进行安装,突然发现出现了问题:此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态,具体如图: 如图中提示可重启电脑进入B ...
- nongsanli
之后的内容只能追加,不可以修改,删除. 1. mysql可以对字段进行MD5加密, 加密插入:INSERT INTO t_user(id,username,PASSWORD) VALUES('5 ...
- ArcSDE 10.1安装、配置、连接
ArcSDE 10.1安装.配置.连接 (SQL Server 2008) 1 概述 ArcSDE 10.1的安装配置相较于ArcSDE 10.0和之前版本,有了一些显著的变化,比如取消了Post ...
- 基本c功能使用不当导致崩溃
一些基本的c语言操作,使用不当也会有出其不意的问题.比如我最近的一个项目中,用到几句代码: uint8_t * out_pcm = NULL; ....... if (NULL == out_pcm) ...
- 如何使用Python读取大文件
背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...
- JdbcTemplate的使用
NamedParameterJdbcTemplate中包含了一个JdbcTemplate,NamedParameterJdbcTemplate中的很多方法实际上还是交由JdbcTemplate去完成. ...