首先,编辑一下/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内核参数提高服务器负载能力的更多相关文章

  1. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  2. (转)/etc/sysctl.conf 调优 & 优化Linux内核参数

    /etc/sysctl.conf 调优 & 优化Linux内核参数 from: http://apps.hi.baidu.com/share/detail/15652067 http://ke ...

  3. 修改Linux内核参数提高Nginx服务器并发性能

    当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TI ...

  4. 修改Linux内核参数提高Nginx服务器在高的时候的性能

    并发 Linux下高并发的Nginx服务器,当TCP TIME_WAIT套接字数量经常达到两.三万,服务器很容易被拖死.通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数 ...

  5. /etc/sysctl.conf 调优 & 优化Linux内核参数

    from: http://apps.hi.baidu.com/share/detail/15652067 http://keyknight.blog.163.com/blog/static/36637 ...

  6. 优化Linux内核参数

    转自:http://www.centoscn.com/CentOS/config/2013/0804/992.html vim /etc/sysctl.conf 1.net.ipv4.tcp_max_ ...

  7. linux内核参数注释与优化

    目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少 ...

  8. (转)linux内核参数注释与优化

    linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/13364 ...

  9. 转载:Linux内核参数的优化(1.3.4)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19615.html 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改 ...

随机推荐

  1. shopnc IM配置过程

    im配置windows下,修改chat下和data下的config,安装node,覆盖node下文件即可

  2. Centos7-卸载自带的jdk 安装jdk8

    卸载JDK Centos7一般都会带有自己的openjdk,我们一般都回用oracle的jdk,所以要卸载 步骤一:查询系统是否以安装jdk #rpm -qa|grep java 或    #rpm ...

  3. linux_inode和block

    linux里一切皆文件 什么是文件属性? 文件本身带有的信息, 包括:索引节点编号. 文件类型以及权限.硬链接个数(备份作用).所有者.所属组.文件大小.修改月.修改日.时分 151387 -rw-- ...

  4. 基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(2)-查询实现

    在上一篇博客中,我们准备好了数据.现在数据已经以我们需要的格式,存放在Elasticsearch中了. 本文讲述如何在Elasticsearch中进行空间GEO查询和聚合查询,以及如何准备ajax接口 ...

  5. Java NIO 之 Buffer

    Java NIO 之 Buffer Java NIO (Non Blocking IO 或者 New IO)是一种非阻塞IO的实现.NIO通过Channel.Buffer.Selector几个组件的协 ...

  6. django xadmin 集成DjangoUeditor富文本编辑器

    本文档记录自己的学习历程! 介绍 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大 额外功能 解决图片视频等无法上传显示问题 Ueditor下载地址 https://gith ...

  7. 系统uid在1-499的原因

    1.因为是保留给系统使用的UID,为了与用户设置的账户区分,防止冲突. 2.并没有其他特别的意义, 3.也叫作虚拟用户,除了0之外,所有的UID在使用上并没有任何区别. 4.linux中文件和程序都要 ...

  8. angular js $post,$get请求传值

    困扰了我好几天的问题!!! 刚开始学play框架,在向后台传值时,一直不成功! 当你用$POST传递一个参数时: HTML: <button ng-click=test()>测试</ ...

  9. 不使用Math.random实现随机数

    不使用Math.random实现随机数 var rand = (function(){ var today = new Date(); var seed = today.getTime(); func ...

  10. .NET Core 2.0 问题杂记

    一. Ubuntu 14.04 安装 1.安装之前请先删除之前的.net core 版本 命令如下: 1.1 获取安装的.net core 版本 sudo apt --installed list | ...