Linux: sysctl.conf
- TAGS: Linux
# Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification #net.ipv4.conf.default.rp_filter = 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 # 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 = 68719476736 # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 ###### vm.swappiness = 0 net.ipv4.neigh.default.gc_stale_time=120 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.all.arp_announce=2 net.ipv4.tcp_max_tw_buckets = 50000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.conf.lo.arp_announce=2 #add at 2016.09.13 ##tcp 3次握手 net.ipv4.tcp_max_syn_backlog = 262144 #接受SYN请求队列的最大长度,默认为1024,容纳更多等待连接的网络连接数 net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理.解决TCP的SYN攻击 #net.ipv4.tcp_no_metrics_save = 1 #tcp连接关闭后,连接信息保存到dst_entry中供下次使用 net.ipv4.ip_local_port_range = 10250 65000 #降低断开超时,默认60;及规定随机端口范围 #net.ipv4.tcp_syn_retries = 2 #内核放弃建立连接之前发送SYN包的数量,默认为4 net.ipv4.tcp_synack_retries = 2 #内核放弃连接之前发送SYN+ACK包的数量,默认为5 #net.ipv4.tcp_retries1 = 3 #放弃回应一个TCP连接请求前,需要进行多少次重试。RFC 规定最低的数值是3,这也是默认值,根据RTO的值大约在3秒 - 8分钟之间。(注意:这个值同时还决定进入的syn连接) net.ipv4.tcp_retries2 = 2 #活动TCP连接重传次数,超过次数视为掉线,放弃连接。缺省值:15,建议设为 2或者3 #net.ipv4.tcp_orphan_retries = 3 #本端试图关闭TCP连接之前重试多少次。缺省值是7,相当于50秒~16分钟(取决于RTO)。如果你的机器是一个重载的WEB服务器,你应该考虑减低这个值,因为这样的套接字会消耗很多重要的资源 #net.ipv4.tcp_sack = 0 #有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段,1开启(对于广域网通信来说这个选项应该启用,但是这会增加对 CPU 的占用。) #net.ipv4.tcp_fack = 1 #打开FACK拥塞避免和快速重传功能。(注意,当tcp_sack设置为0的时候,这个值即使设置为1也无效) #net.ipv4.tcp_dsack = 1 #允许TCP发送”两个完全相同”的SACK。 net.ipv4.tcp_max_orphans=262144 #系统所能处理不属于任何进程的TCPsockets最大数量,增大值纯粹为了抵御那些简单的 DoS 攻击。每个孤儿套接字最多能够吃掉你64K不可交换的内存 net.core.netdev_max_backlog = 8096 #当网卡接受数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。 net.core.somaxconn = 26214 #socket监听(listen)的backlog上限,默认的 128 ##tcp 4次断开 net.ipv4.tcp_timestamps = 1 #打开数据传送时间戳 net.ipv4.tcp_tw_reuse = 1 #复用连接 net.ipv4.tcp_tw_recycle = 1 #快速销毁本地timeout net.ipv4.tcp_max_tw_buckets = 50000 #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000 net.ipv4.tcp_fin_timeout = 30 #本端关闭,保持在FIN-WAIT-2状态的时间,默认60s net.ipv4.tcp_keepalive_time = 1200 #TCP发送keepalive消息的频度。缺省是2小时 #net.ipv4.tcp_keepalive_probes = 5 #TCP发送keepalive探测以确定该连接已经断开的次数。(注意:保持连接仅在SO_KEEPALIVE套接字选项被打开是才发送.次数默认不需要修改,当然根据情形也可以适当地缩短此值.设置为5比较合适) #net.ipv4.tcp_keepalive_intvl = 15 #探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃 #(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值) net.ipv4.tcp_slow_start_after_idle = 0 # 关闭tcp的连接传输的慢启动,即先休止一段时间,再初始化拥塞窗口 ##TCP 缓冲 net.ipv4.tcp_mem = 873800 8388608 8388608 #tcp协议栈内有空间,根据系统内存数量计算得到;1页等于4096字节,根据当前tcp_mem最大内存页面数是8388608,当内存为(8388608*4)/1024K=32.768M时,系统将无法为新的socket连接分配内存,即TCP连接将被拒绝。 net.ipv4.tcp_rmem = 4096 87380 8388608 #接收缓冲,默认值为87380 byte ≈ 86K,最小为4096 byte=4K,最大值为4064K。 net.ipv4.tcp_wmem = 4096 65536 8388608 #发送缓冲,默认值为87380 byte ≈ 86K,最小为4096 byte=4K,最大值为4064K。 ##内核缓冲 net.core.rmem_default = 126976 #内核套接字接受缓存区默认的值,单位字节 net.core.wmem_default = 126976 #内核套接字发送缓存区默认的值 net.core.rmem_max = 16777216 #内核套接字接受缓存区的最大值 net.core.wmem_max = 16777216 #内核套接字发送缓存区的最大值 net.ipv4.tcp_moderate_rcvbuf = 1 #自动调整接收缓存的功能,来使吞吐量最大 ##VM #vm.dirty_writeback_centisecs = 100 #默认499,会触发pdflush回写进程定期唤醒并将old数据写到磁盘,每次的唤醒的间隔,是以数字100算做1秒 #vm.dirty_ratio = 10 #当脏页所占的百分比(相对于所有可用内存,即空闲内存页+可回收内存页)达到dirty_ratio时,进程pdflush会自己开始回写脏数据。增大会使用更多系统内存用于缓冲,可以提高系统的读写性能。 #当需要持续、恒定的写入场合时,应该降低该数值 默认40 #vm.dirty_background_ratio = 5 #当脏页所占的百分比(相对于所有可用内存,即空闲内存页+可回收内存页)达到dirty_background_ratio时内核的pdflush线程开始回写脏页默认10 #vm.zone_reclaim_mode = 0 #为0的话,那么系统会倾向于从其他节点分配内存; 为1话导致内存会优先从freepage的zone里面寻找可以回收的内存,导致系统一直在回收cache 出现SSH登录异常 #vm.swappiness = 0 #该参数控制是否使用swap分区,以及使用的比例。设置的值越大,内核会越倾向于使用swap。如果设置为0,内核只有在看空闲的和基于文件的内存页数量小于内存域的高水位线(应该指的是watermark[high])时才开始swap。 #默认值是60。 ##收到对VIP ARP广播报文 #net.ipv4.ip_forward = 1 #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 ##其它 #net.ipv4.icmp_echo_ignore_broadcasts = 1 # 避免放大攻击 #net.ipv4.icmp_ignore_bogus_error_responses = 1 # 开启恶意icmp错误消息保护 #net.ipv4.conf.all.log_martians = 1 #net.ipv4.conf.default.log_martians = 1 # 开启并记录欺骗,源路由和重定向包 #net.ipv4.conf.all.accept_source_route = 0 #net.ipv4.conf.default.accept_source_route = 0 # 处理无源路由的包 #net.ipv4.conf.all.rp_filter = 1 #net.ipv4.conf.default.rp_filter = 1 # 开启反向路径过滤 #net.ipv4.conf.all.accept_redirects = 0 #net.ipv4.conf.default.accept_redirects = 0 #net.ipv4.conf.all.secure_redirects = 0 #net.ipv4.conf.default.secure_redirects = 0 # 确保无人能修改路由表 #net.ipv4.ip_forward = 0 #net.ipv4.conf.all.send_redirects = 0 #net.ipv4.conf.default.send_redirects = 0 # 不充当路由器 #kernel.exec-shield = 1 #kernel.randomize_va_space = 1 # 开启execshild #net.ipv6.conf.default.router_solicitations = 0 #net.ipv6.conf.default.accept_ra_rtr_pref = 0 #net.ipv6.conf.default.accept_ra_pinfo = 0 #net.ipv6.conf.default.accept_ra_defrtr = 0 #net.ipv6.conf.default.autoconf = 0 #net.ipv6.conf.default.dad_transmits = 0 #net.ipv6.conf.default.max_addresses = 1 # IPv6设置 #kernel.pid_max = 65536 # 允许更多的PIDs (减少滚动翻转问题); may break some programs 32768 fs.file-max = 1024000 #文件句柄,系统启动时自行计算,一般不改 #容量相关 vm.max_map_count=262144 #进程中内存映射区域的最大数量。默认值是65536