Linux服务器内核参数优化

cat >> /etc/sysctl.conf << EOF

# kernel optimization
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
EOF
sysctl -p

将上面的内核参数加入/etc/sysctl.conf文件中,执行如下命令使之生效:

sysctl -p

sysctl.conf内核文件中常用参数含义:

  • net.ipv4.tcp_fin_timeout

    表示套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_fin_timeout 60

  • net.ipv4.tcp_tw_reuse

    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认值为0,表示关闭。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_reuse 0

  • net.ipv4.tcp_tw_recycle

    表示开启TCP连接中TIME-WAIT sockets的快速回收。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle,默认为0,表示关闭。

    提示:reuse和recycle这两个参数是为防止生产环境下Web、Squid等业务服务器time_wait网络状态数量过多设置的。

  • net.ipv4.tcp_syncookies

    表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,这个参数也可以不添加。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syncookies,默认值为1

  • net.ipv4.tcp_keepalive_time

    表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,建议改为10分钟。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_keepalive_time,默认为7200秒。

  • net.ipv4.ip_local_port_range

    该选项用来设定允许系统打开的端口范围,即用于向外连接的端口范围。

    该参数对应系统路径为:/proc/sys/net/ipv4/ip_local_port_range 32768 61000

  • net.ipv4.tcp_max_syn_backlog

    表示SYN队列的长度,默认为1024,建议加大队列的长度为8192或更多,这样可以容纳更多等待连接的网络连接数。

    该参数为服务器端用于记录那些尚未收到客户端确认信息的连接请求最大值。

    该参数对象系统路径为:/proc/sys/net/ipv4/tcp_max_syn_backlog

  • net.ipv4.tcp_max_tw_buckets

    表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值,TIME_WAIT套接字将立刻被清除并打印警告信息。

    默认为180000,对于Apache、Nginx等服务器来说可以将其调低一点,如改为5000~30000,不通业务的服务器也可以给大一点,比如LVS、Squid。

    此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_tw_buckets

  • net.ipv4.tcp_synack_retries

    参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_synack_retries,默认值为5

  • net.ipv4.tcp_syn_retries

    表示在内核放弃建立连接之前发送SYN包的数量。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries 5

  • net.ipv4.tcp_max_orphans

    用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。

    如果超过这个数值,孤立连接将被立即被复位并打印出警告信息。

    这个限制只有为了防止简单的DoS攻击。不能过分依靠这个限制甚至认为减少这个值,更多的情况是增加这个值。

    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_orphans 65536

  • net.core.somaxconn

    该选项默认值是128,这个参数用于调节系统同时发起的TCP连接数,在高并发的请求中,默认的值可能会导致链接超时或重传,因此,需要结合并发请求数来调节此值。

    该参数对应系统路径为:/proc/sys/net/core/somaxconn 128

  • net.core.netdev_max_backlog

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

    该参数对应系统路径为:/proc/sys/net/core/netdev_max_backlog,默认值为1000

Linux系统内核参数优化的更多相关文章

  1. linux——系统内核参数优化

    vim /etc/sysctl.conf net.ipv4.tcp_syncookies = 1 fs.file-max = 999999 net.ipv4.tcp_max_tw_buckets = ...

  2. Linux 内核参数 优化

    Linux 内核参数 优化 目录 Linux 内核参数 优化 1.编辑内核配置文件 2.参数及简单说明 3.客户端的典型状态转移参数 4.TCP重传参数 5.实现Nginx高并发的内核参数优化 生效配 ...

  3. [效果不错] nginx 高并发参数配置及linux内核参数优化,完整的内核优化设置。PHP-FPM高负载解决办法。

    背景:对vps小资源的实践中对,https://justwinit.cn/post/7536/ 的再优化,再实践,再优化,特别是Nginx,PHP,内核: 零)Nginx: error_log /da ...

  4. linux 内核参数优化

    Sysctl命令及linux内核参数调整   一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现.   ...

  5. Linux内核参数优化记录

    //fs.file-max 最大打开文件数 //fs.nr_open=20480000 单个进程允许打开的文件句柄上限 //信号量及共享内存,可以使用ipcs -l来获取 //kernel.sem 信 ...

  6. linux内核参数优化

    net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route ...

  7. linux 内核参数优化----最大线程数限制及当前线程数查询

    1.总结系统限制有: /proc/sys/kernel/pid_max #查系统支持的最大线程数,一般会很大,相当于理论值 /proc/sys/kernel/thread-max max_user_p ...

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

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

  9. linux 内核参数调整优化网络

    Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...

随机推荐

  1. cpython和lua源码阅读

    cpython代码很多,不太容易看出来. lua代码真的短小精悍,不得不佩服.

  2. js 拼接字符串 穿参数 带有单引号

    var html="<a href=\"#\"  onclick=Unlock(\""+flid+"\",1)>弹出& ...

  3. Tagger: Deep Unsupervised Perceptual Grouping

    没看论文,但看了介绍视频,简直做了一个小型纪录片. 视频地址:https://www.youtube.com/watch?v=jfB_lWZA4Qo 中文翻译:http://blog.csdn.net ...

  4. android jni log

    在编写的jni时,经常需要输出打印信息进行调试,而C中printf在jni中没有效果,这时就需要使用NDK提供的函数. 1. jni中包含头文件 #include <android/log.h& ...

  5. 第二百五十四节,Bootstrap项目实战--案例

    Bootstrap项目实战--案例 html <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...

  6. Try中如果发现错误,即跳出try去匹配catch,那么try后面的语句就不会被执行

    例:public void print() throws Exception. 对于方法a,如果它定义了throws Exception.那么当它调用的方法b返回异常对象时,方法a并不处理,而将这个异 ...

  7. Merging an upstream repository into your fork

    1. Check out the branch you wish to merge to. Usually, you will merge into master. $ git checkout ma ...

  8. gcc参数PIE和PIC的区别和共同点

    gcc参数的PIE和PIC 区别 PIE:用在可执行文件 PIC:用在库文件 共同点 生成跟位置没有关系的symbol

  9. HttpModule的简单示例

    1.HttpModule可用在asp.net 管线事件触发的过程中.. 可处理一些通用的操作,如给特定请求加 gzip压缩. 2.示例代码: using System; using System.We ...

  10. QQ在线聊天代码获取和使用教程

    在网站上挂上悬浮QQ是一种有效的推广方式,QQ正常情况下是不被允许临时会话的,需要加为好友才可以,这样很不友好, 当今每个行业都是有很多人在做,竞争很激烈,对客户的友好是增加订单的有效途径. 地址:h ...