配置sysctl.conf文件修改内核参数

sysctl.conf文件

linux系统中/proc/sys目录下存放的内核参数,可以在系统运行时进行更改,不过重启机器后配置就会失效。
由于/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系,在/etc/sysctl.conf文件中修改配置内核参数可以实现永久生效,以下是本人整理的常用参数配置
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1 #开启路由转发功能

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认为0,表示关闭

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# # Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 2147483648 #共享内存段的最大尺寸(以字节为单位),通常设置为2G

# # Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296 #表示系统一次可以使用的共享内存总量(以页为单位)

# TCP kernel paramater
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_rmem = 4096        87380   4194304 #定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值
net.ipv4.tcp_wmem = 4096        16384   4194304 #定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1

# socket buffer
net.core.wmem_default = 8388608 #表示内核套接字发送缓存区默认的大小
net.core.rmem_default = 8388608 #表示内核套接字接收缓存区默认的大小
net.core.rmem_max = 16777216 #表示内核套接字接收缓存区默认的最大值
net.core.wmem_max = 16777216 #表示内核套接字发送缓存区默认的最大值
net.core.netdev_max_backlog = 262144 #当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值
net.core.somaxconn = 20480
net.core.optmem_max = 81920

# TCP conn
net.ipv4.tcp_max_syn_backlog = 16384 #表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求
net.ipv4.tcp_syn_retries = 3 #在内核放弃建立连接之前发送SYN包的数量
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15

# tcp conn reuse
net.ipv4.tcp_tw_reuse = 1 #允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0表示关闭
net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME-WAIT sockets的快速收回功能,默认为0,表示关闭
net.ipv4.tcp_fin_timeout = 1 #表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间

net.ipv4.tcp_max_tw_buckets = 20000 #表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认是180000,过多TIME_WAIT套接字会使Web服务器变慢
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_timestamps = 1 #?
net.ipv4.tcp_synack_retries = 1 #减少系统SYN连接重试次数,默认是5
net.ipv4.tcp_syncookies = 1

# keepalive conn
net.ipv4.tcp_keepalive_time = 300 #这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.ip_local_port_range = 10001    65000 #定义了在UDP和TCP连接中本地端口的取值范围

# swap
vm.overcommit_memory = 0
vm.swappiness = 10

#net.ipv4.conf.eth1.rp_filter = 0
#net.ipv4.conf.lo.arp_ignore = 1
#net.ipv4.conf.lo.arp_announce = 2
#net.ipv4.conf.all.arp_ignore = 1
#net.ipv4.conf.all.arp_announce = 2

原文地址:https://blog.51cto.com/14230230/2414006

时间: 2024-10-11 13:06:10

配置sysctl.conf文件修改内核参数的相关文章

Sysctl命令及linux内核参数调整

一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p (default /etc/sysctl.conf) sysctl [-n] [-e] –a 常用参数的意义: -w  临时改变某个指定参数的值,如 # sysctl -w net.ipv4.ip_forward=1 -a  

sysctl.conf文件详解

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

修改内核参数 dad_transmits

修改内核参数 dad_transmits 最近在学习ipv6的相关知识. 自己控制ipv6 地址冲突检测(dad)发出的报文后,地址配置后,发现多一次ns报文.这很奇怪.经过排查,发现是内核自己发了一次ns报文.所以需要把内核发出的ns报文给禁掉.需要修改内核参数.第一次调整内核参数,内心是激动的.在/proc/sys/net/ipv6/conf/all找到了该参数.但是修改的时候发现问题.通过vim不让修改./proc/sys/net/ipv6/conf找到对应的网口 批量修改直接修改配置文件

修改内核参数

核心:/boot/vmlinuz-version 内核模块:/lib/modules/version 内核设计:linux为单内核,模块化设计 装在模块命令:insmod . modprobe 内核官网:www.kernel.org 用户空间访问.监控内核的方式: /proc . /sys 伪文件系统: /proc/sys :此目录中的文件很多是可读写的 /sys : 某些文件可写 设定内核参数值的方法 第一种修改内核方法: echo VALUE > /proc/sys/dirctory/fil

linux修改内核参数达到高并发效果

vim /etc/sysctl.conf fs.file-max = 51200 #提高整个系统的文件限制 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 =

借用nginx.vim工具进行语法高亮和格式化配置nginx.conf文件

在生产环境中,我们肯定经常用到nginx.conf文件的编排工作,今天在阅读<决战nginx>的时候无意间看到nginx.vim这个辅助工具,于是百度搜索和实际部署检测了一下,其效果确实让人耳目一新,可能很清晰的发现语法上的错误.于是就在这里跟大家介绍一下它的部署方法. 首先看一下效果图: 怎么样还是很炫吧,下面是部署方法: 1.下载nginx.vim http://www.vim.org/scripts/script.php?script_id=1886  这里使用的是0.3.3版本 2.将

linux下修改内核参数进行Tcp性能调优 -- 高并发

前言: Tcp/ip协议对网络编程的重要性,进行过网络开发的人员都知道,我们所编写的网络程序除了硬件,结构等限制,通过修改Tcp/ip内核参数也能得到很大的性能提升, 下面就列举一些Tcp/ip内核参数,解释它们的含义并通过修改来它们来优化我们的网络程序,主要是针对高并发情况. 这里网络程序主要指的是服务器端 1. fs.file-max 最大可以打开的文件描述符数量,注意是整个系统. 在服务器中,我们知道每创建一个连接,系统就会打开一个文件描述符,所以,文件描述符打开的最大数量也决定了我们的最

修改内核参数ip_local_reserved_ports避免tomcat端口占用

问题描述:tomcat 重启时候 遇到这个情况,出现60080端口被占用而无法启动,非得等该端口释放后才启动成功. 问题分析:60080端口被该服务器上的客户端(dubbo motan)随机选取源端口给占用掉了. 解决方案:使用net.ipv4.ip_local_port_range参数,规划出一段端口段预留作为服务的端口,这种方法是可以解决当前问题,但是会有个问题,端口使用量减少了,当服务器需要消耗大量的端口号的话,比如反代服务器,就存在瓶颈了.最好的做法是将服务监听的端口以逗号分隔全部添加到

Ubuntu 中/etc/resolv.conf 文件修改丢失的解决方案

方法一 1.需要创建一个文件/etc/resolvconf/resolv.conf.d/tail sudo vi /etc/resolvconf/resolv.conf.d/tail 2.在该文件中写入自己需要的dns服务器,格式与/etc/resolv.conf相同 nameserver 8.8.8.8 3.重启下resolvconf程序 sudo /etc/init.d/resolvconf restart 再去看看/etc/resolv.conf文件,可以看到自己添加的dns服务器已经加到