/proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效。/etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。也就是说/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系。

直接通过修改sysctl.conf文件来修改Linux内核参数,下面是我的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range =1024    61000
net.ipv4.tcp_rmem =4096 32768 262142
net.ipv4.tcp_wmem =4096 32768 262142
net.core.netdev_max_backlog = 8096
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.rmem_max = 2097152
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024

解释一下sysctl.conf文件中参数的意义:

  • file-max:这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。
  • tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。这个对服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。
  • tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接。
  • tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
  • tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认是i180000,过多TIME_WAIT套接字会使Web服务器变慢。
  • tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。
  • ip_local_port_range:这个参数定义了在UDP和TCP连接中本地端口的取值范围。
  • net.ipv4.tcp_rmem:这个参数定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。
  • net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。
  • netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
  • rmem_default:这个参数表示内核套接字接收缓存区默认的大小。
  • wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
  • rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。
  • wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。

sysctl.conf文件详解相关推荐

  1. Redis配置文件redis.conf文件详解

    Redis配置文件redis.conf文件详解 唠嗑 这里面的意思只要看得差不多其实就是已经对redis有熟悉的感觉,就比如 推塔已经推到别人家的大门~~~~~~~~废话不多说直接开始了 知道大家都不 ...

  2. sysctl 默认值_sysctl.conf文件详解

    使文件立刻生效命令:/sbin/sysctl -p /proc/sys目录下存放着大多数内核参数,并且可以在系统运行时进行更改,不过重新启动机器就会失效./etc/sysctl.conf是一个允许改变 ...

  3. ldconfig命令和/etc/ld.so.conf文件详解

    ldconfig命令的解释是: ldconfig creates the necessary links and cache to the most recent shared libraries f ...

  4. 配置 sysctl.conf 系统参数详解

    配置 sysctl.conf 系统参数(vi /etc/sysctl.conf) 参数: 1.内存&缓存 kernel.sysrq = 0 内核设置验证为0 kernel.core_uses_ ...

  5. nsswitch.conf文件详解

     一.nsswithch.conf:服务搜索顺序     文件/etc/nsswitch.conf(name service switch configuration,名字服务切换配置)规定通过哪些途 ...

  6. /boot/grub/grub.conf文件详解

    grub.conf是grub的主配置文件,通过这个配置文件,grub才能找到kernel,系统才能正常启动.下面我们来解析一下这个文件中所有到的一下关键字的意思: default:定义默认启动的ker ...

  7. Nginx(5)-nginx.conf文件详解

    有了以上博文知识基础,我们可以看看nginx的配置文件:nginx.conf的各项参数代表神马意思了!!! 转载:http://www.nginx.cn/76.html #运行用户 user nobo ...

  8. linux根文件系统 /etc/resolv.conf 文件详解

    大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf.很多网友对此文件的用处不太了解.其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名 ...

  9. /etc/resolv.conf文件详解

    /etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序.该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库 ...

最新文章

  1. springboot-6-整合jdbc
  2. Yann LeCun:距离“真正的” AI,我们还缺什么?
  3. 「AI激荡三十年」中的哈工大与王海峰:中国AI如何从贫瘠的孤岛,走向世界?...
  4. 编程中的一些小问题记录
  5. 技术分享-bounds的深入认识
  6. 一个法国摄影师在中国
  7. Node.js meitulu图片批量下载爬虫1.051
  8. 2021年互联网租房行业洞察报告
  9. JAVA抽象类和接口类的区别
  10. Matlab画图设置指数坐标
  11. 文件同步工具BT Sync介绍和使用说明
  12. AfterEffects 不支持 MKV 格式的解决办法
  13. 纯前端 HTML+JS版, Vue.js版 二维码:生成、扫描、识别、解析、扫一扫
  14. axure不能导出图片_Axure7.0导出图片提示内存不足,如何解决?
  15. PADS VX2.8 原理图图页的添加与名称修改的方法
  16. BLE射频杂散源的由来,以及常见处理办法
  17. 流式低代码编程,拖拽节点画流程图并运行
  18. UEFI 之 UFS Recovery模式下载
  19. xe10 自带DEMO集合
  20. C#使用post方式调用接口获取Token及调用网页地址

热门文章

  1. 大数据2019年的三大趋势你看了吗?
  2. WGCNA分析,简单全面的最新教程(在线做,但也需要懂原理)
  3. 风湿病年鉴 | scRNA-seq研究揭示骨关节炎患者的半月板退变新机制
  4. Mac上神奇的内置搜索引擎——Spotlight(聚焦搜索)
  5. 第1课贝贝的交通指挥系统(《聪明人的游戏:信息学探秘.提高篇-2017-06-C++版》)
  6. 14产品经理要懂的-人性的目的性
  7. STM32F407+CubeMX-使用TIM产生PWM信号
  8. STM32H743+CubeIDE-CanFestival实现两个CANopen Master同时独立运行
  9. Linux基础学习六:Nginx的使用教程
  10. 计算机科学与技术的感性认识,对计算机科学与技术学科的简单认识