【linux】修改arp_ignore、arp_announce、arp_filter、accept_local |内核调优

目录

即可即用

查看的方法:

说明

修改方法

注意格式陷阱

CONFIGURATION FORMAT         top

详细说明

一、介绍

arp_ignore参数

arp_announce参数

二、示例

三、arp_ignore和arp_announce参数在DR模式下的作用

四、arp_ignore和arp_announce参数的配置方法

五、附录

1 什么是DR


即可即用

查看的方法:

方法1:

sysctl -a

方法2:

使用`cat`命令读取`/proc/sys`目录:
例如,运行`cat /proc/sys/kernel/version`可以查看内核版本。
例如,要查看`vm.swappiness`参数的值,可以使用`cat /proc/sys/vm/swappiness`命令。
 

说明

arp_announce : INTEGER

对网络接口上本地IP地址发出的ARP报文作出相应级别的限制。

0:本机所有IP地址都向任何一个接口通告ARP报文。

1:尽量仅向该网卡回应与该网段匹配的ARP报文。

2:只向该网卡回应与该网段匹配的ARP报文。

arp_ignore : INTEGER

定义对目标地址为本地IP的ARP询问不同的应答模式。

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

4~7:预留。

8:不回应所有的arp请求。

修改方法

临时修改方法:

 1. 修改/proc文件系统:

 echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

 echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

 2. 使用sysctl -w直接写入内存:

 sysctl -w net.ipv4.conf.all.arp_ignore=1

 sysctl -w net.ipv4.conf.all.arp_announce=2

永久修改需要写入配置文件:

修改/etc/sysctl.conf文件,然后sysctl -p刷新到内存。

 net.ipv4.conf.all.arp_ignore=1

 net.ipv4.conf.eth0.arp_ignore=1

 net.ipv4.conf.all.arp_announce=2

 net.ipv4.conf.eth0.arp_announce=2

 net.ipv4.conf.eth0.accept_local = 1

备注:

arp_ignore和arp_announce参数分别有all,default,lo,eth0等对应不同网卡。当all和具体网卡的参数值不一致时,配置为较大值的生效。一般只需修改all和某个具体网卡的参数即可。

只要 net.ipv4.conf.nic2.arp_filter 和 net.ipv4.conf.all.arp_filter 有一个是1,那么 NIC2 的 rp filter 就会被启用。:.net 读蓝牙数据_理解 net.ipv4.conf.all.arp_filter_https://blog.csdn.net/weixin_39970855/article/details/112143740

注意格式陷阱

修改/etc/sysctl.conf 文件时,如果网口的名字中间带点,例如bond.91 此时

就不能按照 net.ipv4.conf.eth0.arp_ignore=1的方法设置为 net.ipv4.conf.bond.91.arp_ignore=1

应当改为:

 net/ipv4/conf/bond.91/arp_ignore=1

具体说明见:

CONFIGURATION FORMAT         top

       The configuration files contain a list of variable assignments,
       separated by newlines. Empty lines and lines whose first
       non-whitespace character is "#" or ";" are ignored.

       Note that either "/" or "."  may be used as separators within
       sysctl variable names. If the first separator is a slash,
       remaining slashes and dots are left intact. If the first
       separator is a dot, dots and slashes are interchanged.
       "kernel.domainname=foo" and "kernel/domainname=foo" are
       equivalent and will cause "foo" to be written to
       /proc/sys/kernel/domainname. Either
       "net.ipv4.conf.enp3s0/200.forwarding" or
       "net/ipv4/conf/enp3s0.200/forwarding" may be used to refer to
       /proc/sys/net/ipv4/conf/enp3s0.200/forwarding. A glob glob(7)
       pattern may be used to write the same value to all matching keys.
       Keys for which an explicit pattern exists will be excluded from
       any glob matching. In addition, a key may be explicitly excluded
       from being set by any matching glob patterns by specifying the
       key name prefixed with a "-" character and not followed by "=",
       see SYNOPSIS.

sysctl.d(5) - Linux manual page (man7.org)--https://man7.org/linux/man-pages/man5/sysctl.d.5.html

详细说明

 摘自:Linux内核参数之arp_ignore和arp_announce - https://www.cnblogs.com/lipengxiang2009/p/7451050.html

一、介绍

arp_ignore、arp_announce和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作。这两个参数很重要,特别是在LVS的DR场景下,它们的配置直接影响到DR转发是否正常。

arp_ignore参数

arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。

arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

4~7:保留未使用

8:不回应所有的arp请求

sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。

arp_announce参数

arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。(比如系统准备通过网卡发送一个数据包a,要获取目的IP对应的MAC地址,就需要发送arp请求。arp请求的目的IP自然就是想要获取其MAC地址的IP,而arp请求的源IP是什么呢? 可能第一反应会以为肯定是数据包a的源IP地址,但这不一定,因为arp请求的源IP是可以选择的,控制这个地址如何选择就是arp_announce)

arp_announce参数常用的取值有0,1,2。

0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。

1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。

2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。

二、示例

arp_ignore和arp_announce参数示例

(1)当arp_ignore参数配置为0时,eth1网卡上收到目的IP为环回网卡IP的arp请求,但是eth1也会返回arp响应,把自己的mac地址告诉对端。

(2)当arp_ignore参数配置为1时,eth1网卡上收到目的IP为环回网卡IP的arp请求,发现请求的IP不是自己网卡上的IP,不会回arp响应。

(3)当arp_announce参数配置为0时,系统要发送的IP包源地址为eth1的地址,IP包目的地址根据路由表查询判断需要从eth2网卡发出,这时会先从eth2网卡发起一个arp请求,用于获取目的IP地址的MAC地址。该arp请求的源MAC自然是eth2网卡的MAC地址,但是源IP地址会选择eth1网卡的地址。

(4)当arp_announce参数配置为2时,eth2网卡发起arp请求时,源IP地址会选择eth2网卡自身的IP地址。

三、arp_ignore和arp_announce参数在DR模式下的作用

  1. arp_ignore

  因为DR模式下,每个真实服务器节点都要在环回网卡上绑定虚拟服务IP。这时候,如果客户端对于虚拟服务IP的arp请求广播到了各个真实服务器节点,如果arp_ignore参数配置为0,则各个真实服务器节点都会响应该arp请求,此时客户端就无法正确获取LVS节点上正确的虚拟服务IP所在网卡的MAC地址。假如某个真实服务器节点A的网卡eth1响应了该arp请求,客户端把A节点的eth1网卡的MAC地址误认为是LVS节点的虚拟服务IP所在网卡的MAC,从而将业务请求消息直接发到了A节点的eth1网卡。这时候虽然因为A节点在环回网卡上也绑定了虚拟服务IP,所以A节点也能正常处理请求,业务暂时不会受到影响。但时此时由于客户端请求没有发到LVS的虚拟服务IP上,所以LVS的负载均衡能力没有生效。造成的后果就是,A节点一直在单节点运行,业务量过大时可能会出现性能瓶颈。

  所以DR模式下要求arp_ignore参数要求配置为1。

  2. arp_announce

   每个机器或者交换机中都有一张arp表,该表用于存储对端通信节点IP地址和MAC地址的对应关系。当收到一个未知IP地址的arp请求,就会再本机的arp表中新增对端的IP和MAC记录;当收到一个已知IP地址(arp表中已有记录的地址)的arp请求,则会根据arp请求中的源MAC刷新自己的arp表。

  如果arp_announce参数配置为0,则网卡在发送arp请求时,可能选择的源IP地址并不是该网卡自身的IP地址,这时候收到该arp请求的其他节点或者交换机上的arp表中记录的该网卡IP和MAC的对应关系就不正确,可能会引发一些未知的网络问题,存在安全隐患。

  所以DR模式下要求arp_announce参数要求配置为2。

四、arp_ignore和arp_announce参数的配置方法

arp_ignore和arp_announce参数分别有all,default,lo,eth1,eth2...等对应不同网卡的具体参数。当all和具体网卡的参数值不一致时,取较大值生效。

一般只需修改all和某个具体网卡的参数即可(取决于你需要修改哪个网卡)。下面以修改lo网卡为例:

 1. 修改/etc/sysctl.conf文件,然后sysctl -p刷新到内存。

 net.ipv4.conf.all.arp_ignore=1

 net.ipv4.conf.lo.arp_ignore=1

 net.ipv4.conf.all.arp_announce=2

 net.ipv4.conf.lo.arp_announce=2

 2. 使用sysctl -w直接写入内存:

 sysctl -w net.ipv4.conf.all.arp_ignore=1

 sysctl -w net.ipv4.conf.lo.arp_ignore=1

 sysctl -w net.ipv4.conf.all.arp_announce=2

 sysctl -w net.ipv4.conf.lo.arp_announce=2

 3. 修改/proc文件系统:

 echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

 echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

 echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

 echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce

五、附录

1 什么是DR

摘自:《LVS负载均衡(LVS简介、三种工作模式、十种调度算法)》LVS负载均衡(LVS简介、三种工作模式、十种调度算法) - 腾讯云开发者社区-腾讯云

是LVS的一种工作模式,

3、基于DR的LVS负载均衡

与LVS(TUN)类似,DR模式也叫直接路由模式,其体系结构如图4所示,该模式中LVS依然仅承担数据的入站请求以及根据算法选出合理的真实服务器,最终由后端真实服务器负责将响应数据包发送返回给客户端。与隧道模式不同的是,直接路由模式(DR模式)要求调度器与后端服务器必须在同一个局域网内,VIP地址需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源IP为VIP地址,目标IP为客户端IP,这样客户端访问的是调度器的VIP地址,回应的源地址也依然是该VIP地址(真实服务器上的VIP),客户端是感觉不到后端服务器存在的。由于多台计算机都设置了同样一个VIP地址,所以在直接路由模式中要求调度器的VIP地址是对外可见的,客户端需要将请求数据包发送到调度器主机,而所有的真实服务器的VIP地址必须配置在Non-ARP的网络设备上,也就是该网络设备并不会向外广播自己的MAC及对应的IP地址,真实服务器的VIP对外界是不可见的,但真实服务器却可以接受目标地址VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址。调度器根据算法在选出真实服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实服务器的MAC地址,通过交换机将该数据帧发给真实服务器。整个过程中,真实服务器的VIP不需要对外界可见。

转自:linux-内核参数优化参考指标-https://www.cnblogs.com/paul8339/p/13590188.html

#3.10.0-862.el7.x86_64
#CentOS Linux release 7.5.1804

abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
debug.panic_on_rcu_stall = 0
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info = 
dev.cdrom.info = drive name: sr0
dev.cdrom.info = drive speed: 1
dev.cdrom.info = drive # of slots: 1
dev.cdrom.info = Can close tray: 1
dev.cdrom.info = Can open tray: 1
dev.cdrom.info = Can lock tray: 1
dev.cdrom.info = Can change speed: 1
dev.cdrom.info = Can select disk: 0
dev.cdrom.info = Can read multisession: 1
dev.cdrom.info = Can read MCN: 1
dev.cdrom.info = Reports media changed: 1
dev.cdrom.info = Can play audio: 1
dev.cdrom.info = Can write CD-R: 1
dev.cdrom.info = Can write CD-RW: 1
dev.cdrom.info = Can read DVD: 1
dev.cdrom.info = Can write DVD-R: 1
dev.cdrom.info = Can write DVD-RAM: 1
dev.cdrom.info = Can read MRW: 1
dev.cdrom.info = Can write MRW: 1
dev.cdrom.info = Can write RAM: 1
dev.cdrom.info = 
dev.cdrom.info = 
dev.cdrom.lock = 1
dev.hpet.max-user-freq = 64
dev.mac_hid.mouse_button2_keycode = 97
dev.mac_hid.mouse_button3_keycode = 100
dev.mac_hid.mouse_button_emulation = 0
dev.parport.default.spintime = 500
dev.parport.default.timeslice = 200
dev.raid.speed_limit_max = 200000 #RAID最大读取速率,如果RAID性能较高,可以修改此上限来提升IO性能
dev.raid.speed_limit_min = 1000 #RAID最小读取速率
dev.scsi.logging_level = 0 #是否开启scsi磁盘的日志功能,一般情况不建议开启
fs.aio-max-nr = 65536
fs.aio-nr = 0
fs.binfmt_misc.status = enabled
fs.dentry-state = 23528 10917 45 0 0 0
fs.dir-notify-enable = 1
fs.epoll.max_user_watches = 411340
fs.file-max = 197872
fs.file-nr = 1120 0 197872
fs.inode-nr = 20574 298
fs.inode-state = 20574 298 0 0 0 0 0
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.lease-break-time = 45
fs.leases-enable = 1
fs.may_detach_mounts = 0
fs.mount-max = 100000
fs.mqueue.msg_default = 10
fs.mqueue.msg_max = 10
fs.mqueue.msgsize_default = 8192
fs.mqueue.msgsize_max = 8192
fs.mqueue.queues_max = 256
fs.nr_open = 1048576
fs.overflowgid = 65534
fs.overflowuid = 65534
fs.pipe-max-size = 1048576
fs.pipe-user-pages-hard = 0
fs.pipe-user-pages-soft = 16384
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
fs.quota.allocated_dquots = 0
fs.quota.cache_hits = 0
fs.quota.drops = 0
fs.quota.free_dquots = 0
fs.quota.lookups = 0
fs.quota.reads = 0
fs.quota.syncs = 0
fs.quota.warnings = 1
fs.quota.writes = 0
fs.suid_dumpable = 0
kernel.acct = 4 2 30
kernel.acpi_video_flags = 0
kernel.auto_msgmni = 1
kernel.bootloader_type = 114
kernel.bootloader_version = 2
kernel.cad_pid = 1
kernel.cap_last_cap = 36
kernel.compat-log = 1
kernel.core_pattern = core
kernel.core_pipe_limit = 0
kernel.core_uses_pid = 1
kernel.ctrl-alt-del = 0
kernel.dmesg_restrict = 0
kernel.domainname = (none)
kernel.ftrace_dump_on_oops = 0
kernel.ftrace_enabled = 1
kernel.hardlockup_all_cpu_backtrace = 0
kernel.hardlockup_panic = 1
kernel.hostname = example_server.com #由此可以看出,主机名是属于内核的
kernel.hotplug = 
kernel.hung_task_check_count = 4194304
kernel.hung_task_panic = 0
kernel.hung_task_timeout_secs = 120
kernel.hung_task_warnings = 10
kernel.io_delay_type = 0
kernel.kexec_load_disabled = 0
kernel.keys.gc_delay = 300
kernel.keys.maxbytes = 20000
kernel.keys.maxkeys = 200
kernel.keys.persistent_keyring_expiry = 259200
kernel.keys.root_maxbytes = 25000000
kernel.keys.root_maxkeys = 1000000
kernel.kptr_restrict = 0
kernel.max_lock_depth = 1024
kernel.modprobe = /sbin/modprobe
kernel.modules_disabled = 0
kernel.msg_next_id = -1
kernel.msgmax = 8192
kernel.msgmnb = 16384
kernel.msgmni = 3958
kernel.ngroups_max = 65536
kernel.nmi_watchdog = 1
kernel.ns_last_pid = 1651
kernel.numa_balancing = 0
kernel.numa_balancing_scan_delay_ms = 1000
kernel.numa_balancing_scan_period_max_ms = 60000
kernel.numa_balancing_scan_period_min_ms = 1000
kernel.numa_balancing_scan_size_mb = 256
kernel.numa_balancing_settle_count = 4
kernel.osrelease = 3.10.0-862.el7.x86_64
kernel.ostype = Linux
kernel.overflowgid = 65534
kernel.overflowuid = 65534
kernel.panic = 0
kernel.panic_on_io_nmi = 0
kernel.panic_on_oops = 1
kernel.panic_on_stackoverflow = 0
kernel.panic_on_unrecovered_nmi = 0
kernel.panic_on_warn = 0
kernel.perf_cpu_time_max_percent = 25
kernel.perf_event_max_sample_rate = 100000
kernel.perf_event_mlock_kb = 516
kernel.perf_event_paranoid = 2
kernel.pid_max = 131072
kernel.poweroff_cmd = /sbin/poweroff
kernel.print-fatal-signals = 0
kernel.printk = 4 4 1 7
kernel.printk_delay = 0
kernel.printk_ratelimit = 5
kernel.printk_ratelimit_burst = 10
kernel.pty.max = 4096
kernel.pty.nr = 1
kernel.pty.reserve = 1024
kernel.random.boot_id = b91ea354-c5d0-4c48-abcd-18da3dcd6741
kernel.random.entropy_avail = 978
kernel.random.poolsize = 4096
kernel.random.read_wakeup_threshold = 64
kernel.random.urandom_min_reseed_secs = 60
kernel.random.uuid = 923d2748-02d8-47b8-968d-9c2b7c420bec
kernel.random.write_wakeup_threshold = 896
kernel.randomize_va_space = 2
kernel.real-root-dev = 0
kernel.sched_autogroup_enabled = 0
kernel.sched_cfs_bandwidth_slice_us = 5000
kernel.sched_child_runs_first = 0
kernel.sched_domain.cpu0.domain0.busy_factor = 32
kernel.sched_domain.cpu0.domain0.busy_idx = 2
kernel.sched_domain.cpu0.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu0.domain0.flags = 559
kernel.sched_domain.cpu0.domain0.forkexec_idx = 0
kernel.sched_domain.cpu0.domain0.idle_idx = 0
kernel.sched_domain.cpu0.domain0.imbalance_pct = 117
kernel.sched_domain.cpu0.domain0.max_interval = 4
kernel.sched_domain.cpu0.domain0.max_newidle_lb_cost = 17063
kernel.sched_domain.cpu0.domain0.min_interval = 2
kernel.sched_domain.cpu0.domain0.name = MC
kernel.sched_domain.cpu0.domain0.newidle_idx = 0
kernel.sched_domain.cpu0.domain0.wake_idx = 0
kernel.sched_domain.cpu1.domain0.busy_factor = 32
kernel.sched_domain.cpu1.domain0.busy_idx = 2
kernel.sched_domain.cpu1.domain0.cache_nice_tries = 1
kernel.sched_domain.cpu1.domain0.flags = 559
kernel.sched_domain.cpu1.domain0.forkexec_idx = 0
kernel.sched_domain.cpu1.domain0.idle_idx = 0
kernel.sched_domain.cpu1.domain0.imbalance_pct = 117
kernel.sched_domain.cpu1.domain0.max_interval = 4
kernel.sched_domain.cpu1.domain0.max_newidle_lb_cost = 1898
kernel.sched_domain.cpu1.domain0.min_interval = 2
kernel.sched_domain.cpu1.domain0.name = MC
kernel.sched_domain.cpu1.domain0.newidle_idx = 0
kernel.sched_domain.cpu1.domain0.wake_idx = 0
kernel.sched_latency_ns = 12000000
kernel.sched_migration_cost_ns = 500000
kernel.sched_min_granularity_ns = 10000000
kernel.sched_nr_migrate = 32
kernel.sched_rr_timeslice_ms = 100
kernel.sched_rt_period_us = 1000000
kernel.sched_rt_runtime_us = 950000
kernel.sched_schedstats = 0
kernel.sched_shares_window_ns = 10000000
kernel.sched_time_avg_ms = 1000
kernel.sched_tunable_scaling = 1
kernel.sched_wakeup_granularity_ns = 15000000
kernel.sem = 250 32000 32 128
kernel.sem_next_id = -1
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
kernel.softlockup_all_cpu_backtrace = 0
kernel.softlockup_panic = 0
kernel.stack_tracer_enabled = 0
kernel.sysctl_writes_strict = 1
kernel.sysrq = 16
kernel.tainted = 0
kernel.threads-max = 15691
kernel.timer_migration = 1
kernel.traceoff_on_warning = 0
kernel.unknown_nmi_panic = 0
kernel.usermodehelper.bset = 4294967295 31
kernel.usermodehelper.inheritable = 4294967295 31
kernel.version = #1 SMP Fri Apr 20 16:44:24 UTC 2018
kernel.watchdog = 1
kernel.watchdog_cpumask = 0-127
kernel.watchdog_thresh = 10
kernel.yama.ptrace_scope = 0
net.core.bpf_jit_enable = 0
net.core.busy_poll = 0
net.core.busy_read = 0
net.core.default_qdisc = pfifo_fast
net.core.dev_weight = 64
net.core.dev_weight_rx_bias = 1
net.core.dev_weight_tx_bias = 1
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_budget = 300
net.core.netdev_max_backlog = 1000 #网络设备监听队列的最大长度(此值决定了全局并发能力,但不可大过65535,建议值10000)
net.core.netdev_rss_key = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
net.core.netdev_tstamp_prequeue = 1 #网络设备预置队列序号,意味着从指定值开始顺延序列化
net.core.optmem_max = 20480 #每个套接字所允许的最大缓冲区的大小
net.core.rmem_default = 212992 #网络协议栈默认接收内存
net.core.rmem_max = 212992 #网络协议栈最大接收内存
net.core.rps_sock_flow_entries = 0
net.core.somaxconn = 128 #定义了系统中每一个端口最大的监听队列长度,这是个全局的参数 建议值1280
net.core.warnings = 1
net.core.wmem_default = 212992 #网络协议栈默认发送内存
net.core.wmem_max = 212992 #网络协议栈最大发送内存
net.core.xfrm_acq_expires = 30
net.core.xfrm_aevent_etime = 10
net.core.xfrm_aevent_rseqth = 2
net.core.xfrm_larval_drop = 1
net.ipv4.cipso_cache_bucket_size = 10
net.ipv4.cipso_cache_enable = 1
net.ipv4.cipso_rbm_optfmt = 0
net.ipv4.cipso_rbm_strictvalid = 1
net.ipv4.conf.all.accept_local = 0 #是否允许所有接口接收从本机IP地址上发送给本机的数据包
net.ipv4.conf.all.accept_redirects = 1 #是否接收重写过的数据包(用作路由器时默认值为0)
net.ipv4.conf.all.accept_source_route = 0 #是否接收无源路由的数据包
net.ipv4.conf.all.arp_accept = 0 #默认对不在ARP表中的IP地址发出的APR包的处理方式:0不在ARP表中创建对应IP地址的表项;1在ARP表中创建对应IP地址的表项
net.ipv4.conf.all.arp_announce = 0 #对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
#0: 在任意网络接口(eth0,eth1,lo)上的任何本地地址
#1:尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 
#2:对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.
net.ipv4.conf.all.arp_filter = 0 # 0:内核设置每个网络接口各自应答其地址上的arp询问。这项看似会错误的设置却经常能非常有效,因为它增加了成功通讯的机会。在Linux主机上,每个IP地址是网络接口独立的,而非一个复合的接口。只有在一些特殊的设置的时候,比如负载均衡的时候会带来麻烦
#1:允许多个网络介质位于同一子网段内,每个网络界面依据是否内核指派路由该数据包经过此接口来确认是否回答ARP查询(这个实现是由来源地址确定路由的时候决定的),换句话说,允许控制使用某一块网卡(通常是第一块)回应arp询问
net.ipv4.conf.all.arp_ignore = 0 #定义对目标地址为本地IP的ARP询问不同的应答模式(LVS负载均衡时此值需要修改为2)
#0:回应任何网络接口上对任何本地IP地址的arp查询请求
#1:只回答目标IP地址是来访网络接口本地地址的ARP查询请求
#2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
#3:不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
#8:不回应所有(本地地址)的arp查询
net.ipv4.conf.all.arp_notify = 0 #是否开启arp通知链操作:0不做任何操作,1当设备或硬件地址改变时自动产生一个arp请求
net.ipv4.conf.all.bootp_relay = 0 #是否接收源地址为0.a.b.c,目的地址不是本机的数据包,是为了支持bootp服务
net.ipv4.conf.all.disable_policy = 0 #是否禁止internet协议安全性验证
net.ipv4.conf.all.disable_xfrm = 0 #是否禁止internet协议安全性加密
net.ipv4.conf.all.force_igmp_version = 0
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.log_martians = 0 #是否开启并记录欺骗,源路由和重定向数据包:记录带有不允许的地址的数据报到内核日志中(如果是路由器建议值为1)
net.ipv4.conf.all.mc_forwarding = 0 #是否进行多播路由(只有内核编译有CONFIG_MROUTE并且有路由服务程序在运行该参数才有效)
net.ipv4.conf.all.medium_id = 0 #用来区分不同媒介.两个网络设备可以使用不同的值,使他们只有其中之一接收到广播包.通常,这个参数被用来配合proxy_arp实现roxy_arp的特性即是允许arp报文在两个不同的网络介质中转发.
#0:表示各个网络介质接受他们自己介质上的媒介
#-1:表示该媒介未知
net.ipv4.conf.all.promote_secondaries = 1 #主备IP地址切换控制机制(建议值1)0当接口的主IP地址被移除时,删除所有次IP地址;1当接口的主IP地址被移除时,将次IP地址提升为主IP地址
net.ipv4.conf.all.proxy_arp = 0 #是否启用arp代理功能
net.ipv4.conf.all.proxy_arp_pvlan = 0 #回应代理ARP的数据包从接收到此代理ARP请求的网络接口出去
net.ipv4.conf.all.route_localnet = 0 #是否允许外部访问localhost
net.ipv4.conf.all.rp_filter = 1 #是否开启反向路径过滤
net.ipv4.conf.all.secure_redirects = 1 #是否支持安全重定向数据包
net.ipv4.conf.all.send_redirects = 1 #是否发送重定向数据包
net.ipv4.conf.all.shared_media = 1 #发送或接收RFC1620 共享媒体重定向 会覆盖ip_secure_redirects的值
net.ipv4.conf.all.src_valid_mark = 0 #是否为所有接口上源地址有效的数据包打标记
net.ipv4.conf.all.tag = 0
net.ipv4.conf.default.accept_local = 0 #默认是否允许接收从本机IP地址上发送给本机的数据包
net.ipv4.conf.default.accept_redirects = 1 #默认是否接收重写过的数据包(建议值1)
net.ipv4.conf.default.accept_source_route = 0 #默认是否接收无源路由的数据包
net.ipv4.conf.default.arp_accept = 0
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.default.arp_ignore = 0 #LVS负载均衡需要修改此值为1
net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.default.disable_policy = 0
net.ipv4.conf.default.disable_xfrm = 0
net.ipv4.conf.default.force_igmp_version = 0
net.ipv4.conf.default.forwarding = 0
net.ipv4.conf.default.log_martians = 0 #默认是否开启并记录欺骗,源路由和重定向数据包(如果是路由器建议值为1)
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.proxy_arp_pvlan = 0
net.ipv4.conf.default.route_localnet = 0
net.ipv4.conf.default.rp_filter = 1 #默认是否开启反向路径过滤
net.ipv4.conf.default.secure_redirects = 1 #默认是否支持安全重定向数据包
net.ipv4.conf.default.send_redirects = 1 #默认是否发送重定向数据包
net.ipv4.conf.default.shared_media = 1
net.ipv4.conf.default.src_valid_mark = 0 #默认是否为源地址有效的数据包打标记
net.ipv4.conf.default.tag = 0
net.ipv4.conf.eth0.accept_local = 0
net.ipv4.conf.eth0.accept_redirects = 1
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.eth0.arp_accept = 0
net.ipv4.conf.eth0.arp_announce = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth0.arp_ignore = 0
net.ipv4.conf.eth0.arp_notify = 0
net.ipv4.conf.eth0.bootp_relay = 0
net.ipv4.conf.eth0.disable_policy = 0
net.ipv4.conf.eth0.disable_xfrm = 0
net.ipv4.conf.eth0.force_igmp_version = 0
net.ipv4.conf.eth0.forwarding = 0
net.ipv4.conf.eth0.log_martians = 0
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth0.medium_id = 0
net.ipv4.conf.eth0.promote_secondaries = 1
net.ipv4.conf.eth0.proxy_arp = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0
net.ipv4.conf.eth0.route_localnet = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.secure_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
net.ipv4.conf.eth0.shared_media = 1
net.ipv4.conf.eth0.src_valid_mark = 0
net.ipv4.conf.eth0.tag = 0
net.ipv4.conf.lo.accept_local = 0
net.ipv4.conf.lo.accept_redirects = 1
net.ipv4.conf.lo.accept_source_route = 1
net.ipv4.conf.lo.arp_accept = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_notify = 0
net.ipv4.conf.lo.bootp_relay = 0
net.ipv4.conf.lo.disable_policy = 1
net.ipv4.conf.lo.disable_xfrm = 1
net.ipv4.conf.lo.force_igmp_version = 0
net.ipv4.conf.lo.forwarding = 0
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.medium_id = 0
net.ipv4.conf.lo.promote_secondaries = 0
net.ipv4.conf.lo.proxy_arp = 0
net.ipv4.conf.lo.proxy_arp_pvlan = 0
net.ipv4.conf.lo.route_localnet = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.secure_redirects = 1
net.ipv4.conf.lo.send_redirects = 1
net.ipv4.conf.lo.shared_media = 1
net.ipv4.conf.lo.src_valid_mark = 0
net.ipv4.conf.lo.tag = 0
net.ipv4.fwmark_reflect = 0
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_errors_use_inbound_ifaddr = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_msgs_burst = 50
net.ipv4.icmp_msgs_per_sec = 1000
net.ipv4.icmp_ratelimit = 1000
net.ipv4.icmp_ratemask = 6168
net.ipv4.igmp_max_memberships = 20
net.ipv4.igmp_max_msf = 10
net.ipv4.igmp_qrv = 2
net.ipv4.inet_peer_maxttl = 600
net.ipv4.inet_peer_minttl = 120
net.ipv4.inet_peer_threshold = 65664
net.ipv4.ip_default_ttl = 64 #定义数据报的生存周期:最多经过多少路由器后数据将被丢弃
net.ipv4.ip_dynaddr = 0
net.ipv4.ip_early_demux = 1
net.ipv4.ip_forward = 0 #是否启用IP转发(如果做路由需要开启此项)
net.ipv4.ip_forward_use_pmtu = 0 #是否支持巨型帧转发(使用LVS做负载均衡器时建议此值为1)
net.ipv4.ip_local_port_range = 32768 60999 #服务器端可用端口范围(建议值 1024 65535)
net.ipv4.ip_local_reserved_ports = #系统预留端口列表:可以防止并发时占用服务端口
net.ipv4.ip_no_pmtu_disc = 0 #是否关闭路径MTU探测功能
net.ipv4.ip_nonlocal_bind = 0
net.ipv4.ipfrag_high_thresh = 4194304
net.ipv4.ipfrag_low_thresh = 3145728
net.ipv4.ipfrag_max_dist = 64
net.ipv4.ipfrag_secret_interval = 600
net.ipv4.ipfrag_time = 30
net.ipv4.neigh.default.anycast_delay = 100
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.default.delay_first_probe_time = 5
net.ipv4.neigh.default.gc_interval = 30
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024
net.ipv4.neigh.default.locktime = 100
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.proxy_delay = 80
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.neigh.default.retrans_time_ms = 1000
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.neigh.default.unres_qlen = 31
net.ipv4.neigh.default.unres_qlen_bytes = 65536
net.ipv4.neigh.eth0.anycast_delay = 100
net.ipv4.neigh.eth0.app_solicit = 0
net.ipv4.neigh.eth0.base_reachable_time_ms = 30000
net.ipv4.neigh.eth0.delay_first_probe_time = 5
net.ipv4.neigh.eth0.gc_stale_time = 60
net.ipv4.neigh.eth0.locktime = 100
net.ipv4.neigh.eth0.mcast_solicit = 3
net.ipv4.neigh.eth0.proxy_delay = 80
net.ipv4.neigh.eth0.proxy_qlen = 64
net.ipv4.neigh.eth0.retrans_time_ms = 1000
net.ipv4.neigh.eth0.ucast_solicit = 3
net.ipv4.neigh.eth0.unres_qlen = 31
net.ipv4.neigh.eth0.unres_qlen_bytes = 65536
net.ipv4.neigh.lo.anycast_delay = 100
net.ipv4.neigh.lo.app_solicit = 0
net.ipv4.neigh.lo.base_reachable_time_ms = 30000
net.ipv4.neigh.lo.delay_first_probe_time = 5
net.ipv4.neigh.lo.gc_stale_time = 60
net.ipv4.neigh.lo.locktime = 100
net.ipv4.neigh.lo.mcast_solicit = 3
net.ipv4.neigh.lo.proxy_delay = 80
net.ipv4.neigh.lo.proxy_qlen = 64
net.ipv4.neigh.lo.retrans_time_ms = 1000
net.ipv4.neigh.lo.ucast_solicit = 3
net.ipv4.neigh.lo.unres_qlen = 31
net.ipv4.neigh.lo.unres_qlen_bytes = 65536
net.ipv4.ping_group_range = 1 0
net.ipv4.route.error_burst = 5000
net.ipv4.route.error_cost = 1000
net.ipv4.route.gc_elasticity = 8
net.ipv4.route.gc_interval = 60
net.ipv4.route.gc_min_interval = 0
net.ipv4.route.gc_min_interval_ms = 500
net.ipv4.route.gc_thresh = -1
net.ipv4.route.gc_timeout = 300
net.ipv4.route.max_size = 2147483647
net.ipv4.route.min_adv_mss = 256
net.ipv4.route.min_pmtu = 552
net.ipv4.route.mtu_expires = 600
net.ipv4.route.redirect_load = 20
net.ipv4.route.redirect_number = 9
net.ipv4.route.redirect_silence = 20480
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_adv_win_scale = 1
net.ipv4.tcp_allowed_congestion_control = cubic reno #IPV4 TCP允许的拥塞控制算法
net.ipv4.tcp_app_win = 31
net.ipv4.tcp_autocorking = 1
net.ipv4.tcp_available_congestion_control = cubic reno #内核中可用的TCP拥塞控制算法
net.ipv4.tcp_base_mss = 512
net.ipv4.tcp_challenge_ack_limit = 1000
net.ipv4.tcp_congestion_control = cubic #当前正在使用的TCP拥塞控制算法
net.ipv4.tcp_dsack = 1 #是否允许TCP发送“两个完全相同”的SACK
net.ipv4.tcp_early_retrans = 3
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fack = 1 #启用转发应答(Forward Acknowledgment 建议值1),可以进行有选择应答(SACK)从而减少拥塞情况的发生
net.ipv4.tcp_fastopen = 0
net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000
net.ipv4.tcp_fin_timeout = 60 #server端主动发起断开连接后保持在FIN-WAIT-2状态的时间(建议30s)
net.ipv4.tcp_frto = 2
net.ipv4.tcp_invalid_ratelimit = 500 #无效数据包发送速率时间限制(单位:毫秒)
net.ipv4.tcp_keepalive_intvl = 75 #探测消息未获得响应时,重发该消息的间隔时间(单位:秒 建议值 30)
net.ipv4.tcp_keepalive_probes = 9 #在认定TCP连接失效之前,最多发送多少个keepalive探测消息(建议值3)
net.ipv4.tcp_keepalive_time = 7200 #TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效(建议值1800)
net.ipv4.tcp_limit_output_bytes = 262144 #单个套接字限制最大输出字节数(建议保持默认256KB)
net.ipv4.tcp_low_latency = 0 #是否允许TCP/IP栈适应在高吞吐量情况下低延时的情况(此选项建议为0)
net.ipv4.tcp_max_orphans = 8192 #允许保留的僵尸套接字的最大值(此值设置过大会给CC×××带来便利)
net.ipv4.tcp_max_ssthresh = 0
net.ipv4.tcp_max_syn_backlog = 128 #SYN队列的长度,增大其值可以增大服务器接收并发的能力 (建议值1280)
net.ipv4.tcp_max_tw_buckets = 8192 #针对TIME-WAIT数量配置其上限(此值配置太大很容易给CC×××提供便利)
net.ipv4.tcp_mem = 45918 61225 91836 #TCP协议栈缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket
net.ipv4.tcp_min_tso_segs = 2
net.ipv4.tcp_moderate_rcvbuf = 1 #是否开启TCP缓冲内存自动调整功能
net.ipv4.tcp_mtu_probing = 0 #是否开启tcp层路径mtu发现
net.ipv4.tcp_no_metrics_save = 0 #是否将LAST_ACK状态保存各种连接信息到路由缓存中:方便下次连接时快速恢复现场
net.ipv4.tcp_notsent_lowat = -1
net.ipv4.tcp_orphan_retries = 0 #僵尸套接字的重试次数
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_retrans_collapse = 1
net.ipv4.tcp_retries1 = 3 #放弃回应一个TCP连接请求前进行重试的次数
net.ipv4.tcp_retries2 = 15 #放弃一个已经建立的TCP连接前进行重试的次数
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_rmem = 4096 87380 6291456 #TCP套接字接收缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket
net.ipv4.tcp_sack = 1 #是否启用有选择的应答(Selective Acknowledgment 建议值1),使TCP只重新发送交互过程中丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到了。如此大大提高了客户端与服务器端数据交互的效率
net.ipv4.tcp_slow_start_after_idle = 1 #拥塞窗口在经过一段时间空闲后是否需要重新初始化(建议值1)
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_syn_retries = 6 #server主动连接client时发送syn的重试次数(没有特殊需求,建议保持此值)
net.ipv4.tcp_synack_retries = 5 #server应答client的synack的重试次数
net.ipv4.tcp_syncookies = 1 #是否打开SYN Cookie功能(启用此功能可以防止部分SYN×××)
net.ipv4.tcp_thin_dupack = 0
net.ipv4.tcp_thin_linear_timeouts = 0
net.ipv4.tcp_timestamps = 1 #是否启用TCP时间戳(会在TCP包头增加12个字节),增加了报文大小,但实现了更好的TCP性能
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_tw_recycle = 0 #是否快速回收TIME-WAIT套接字,不建议快速回收,但可以reuse,否则NAT环境会有问题
net.ipv4.tcp_tw_reuse = 0 #是否将处于TIME-WAIT状态的socket(TIME-WAIT的端口)重新用于TCP连接
net.ipv4.tcp_window_scaling = 1 #要支持超过64KB的TCP窗口,必须启用该值,TCP连接双方都启用时才生效
net.ipv4.tcp_wmem = 4096 16384 4194304 #TCP套接字发送缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket
net.ipv4.tcp_workaround_signed_windows = 0
net.ipv4.udp_mem = 47073 62766 94146
net.ipv4.udp_rmem_min = 4096
net.ipv4.udp_wmem_min = 4096
net.ipv4.xfrm4_gc_thresh = 32768
net.ipv6.anycast_src_echo_reply = 0
net.ipv6.bindv6only = 0
net.ipv6.conf.all.accept_dad = 0
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0 #是否在所有的网络接口上禁用IPv6(XenServer虚机禁用无效)
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.ndisc_notify = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.router_probe_interval = 60
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.use_optimistic = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0 #默认是否禁用IPv6(用不到IPv6时建议禁用-设定此值为1 (XenServer虚机禁用无效))
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.ndisc_notify = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.router_probe_interval = 60
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.use_optimistic = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_source_route = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.force_tllao = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.ndisc_notify = 0
net.ipv6.conf.eth0.optimistic_dad = 0
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry = 3
net.ipv6.conf.eth0.router_probe_interval = 60
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = 3
net.ipv6.conf.eth0.temp_prefered_lft = 86400
net.ipv6.conf.eth0.temp_valid_lft = 604800
net.ipv6.conf.eth0.use_optimistic = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0 #是否在lo接口上禁用IPv6 (XenServer虚机禁用无效)
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.ndisc_notify = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.router_probe_interval = 60
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.use_optimistic = 0
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.fwmark_reflect = 0
net.ipv6.icmp.ratelimit = 1000
net.ipv6.idgen_delay = 1
net.ipv6.idgen_retries = 3
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 600
net.ipv6.ip6frag_time = 60
net.ipv6.ip_nonlocal_bind = 0
net.ipv6.mld_max_msf = 64
net.ipv6.mld_qrv = 2
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.unres_qlen = 31
net.ipv6.neigh.default.unres_qlen_bytes = 65536
net.ipv6.neigh.eth0.anycast_delay = 100
net.ipv6.neigh.eth0.app_solicit = 0
net.ipv6.neigh.eth0.base_reachable_time_ms = 30000
net.ipv6.neigh.eth0.delay_first_probe_time = 5
net.ipv6.neigh.eth0.gc_stale_time = 60
net.ipv6.neigh.eth0.locktime = 0
net.ipv6.neigh.eth0.mcast_solicit = 3
net.ipv6.neigh.eth0.proxy_delay = 80
net.ipv6.neigh.eth0.proxy_qlen = 64
net.ipv6.neigh.eth0.retrans_time_ms = 1000
net.ipv6.neigh.eth0.ucast_solicit = 3
net.ipv6.neigh.eth0.unres_qlen = 31
net.ipv6.neigh.eth0.unres_qlen_bytes = 65536
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.unres_qlen = 31
net.ipv6.neigh.lo.unres_qlen_bytes = 65536
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.gc_timeout = 60
net.ipv6.route.max_size = 16384
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.mtu_expires = 600
net.ipv6.xfrm6_gc_thresh = 32768
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_count = 1
net.netfilter.nf_conntrack_dccp_loose = 1
net.netfilter.nf_conntrack_dccp_timeout_closereq = 64
net.netfilter.nf_conntrack_dccp_timeout_closing = 64
net.netfilter.nf_conntrack_dccp_timeout_open = 43200
net.netfilter.nf_conntrack_dccp_timeout_partopen = 480
net.netfilter.nf_conntrack_dccp_timeout_request = 240
net.netfilter.nf_conntrack_dccp_timeout_respond = 480
net.netfilter.nf_conntrack_dccp_timeout_timewait = 240
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_expect_max = 256
net.netfilter.nf_conntrack_frag6_high_thresh = 4194304
net.netfilter.nf_conntrack_frag6_low_thresh = 3145728
net.netfilter.nf_conntrack_frag6_timeout = 60
net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_helper = 1
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_icmpv6_timeout = 30
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_max = 65536
net.netfilter.nf_conntrack_sctp_timeout_closed = 10
net.netfilter.nf_conntrack_sctp_timeout_cookie_echoed = 3
net.netfilter.nf_conntrack_sctp_timeout_cookie_wait = 3
net.netfilter.nf_conntrack_sctp_timeout_established = 432000
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_acked = 210
net.netfilter.nf_conntrack_sctp_timeout_heartbeat_sent = 30
net.netfilter.nf_conntrack_sctp_timeout_shutdown_ack_sent = 3
net.netfilter.nf_conntrack_sctp_timeout_shutdown_recd = 0
net.netfilter.nf_conntrack_sctp_timeout_shutdown_sent = 0
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_timestamp = 0
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_log.0 = NONE
net.netfilter.nf_log.1 = NONE
net.netfilter.nf_log.10 = NONE
net.netfilter.nf_log.11 = NONE
net.netfilter.nf_log.12 = NONE
net.netfilter.nf_log.2 = NONE
net.netfilter.nf_log.3 = NONE
net.netfilter.nf_log.4 = NONE
net.netfilter.nf_log.5 = NONE
net.netfilter.nf_log.6 = NONE
net.netfilter.nf_log.7 = NONE
net.netfilter.nf_log.8 = NONE
net.netfilter.nf_log.9 = NONE
net.netfilter.nf_log_all_netns = 0
net.nf_conntrack_max = 65536
net.unix.max_dgram_qlen = 512
user.max_ipc_namespaces = 7845
user.max_mnt_namespaces = 7845
user.max_net_namespaces = 7845
user.max_pid_namespaces = 7845
user.max_user_namespaces = 0
user.max_uts_namespaces = 7845
vm.admin_reserve_kbytes = 8192 #始终会预留给管理员的内存
vm.block_dump = 0
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10 #当系统脏页的比例或者所占内存数量超过 dirty_background_ratio(百分数)阈值时,启动相关内核线程(pdflush/flush/kdmflush)开始将脏页写入磁盘
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000 #声明Linux内核写缓冲区里面的数据多"旧"了之后,pdflush/flush/kdmflush进程就开始考虑写到磁盘中去
vm.dirty_ratio = 30 #当系统pagecache的脏页达到系统内存 dirty_ratio(百分数)阈值时,系统就会阻塞新的写请求,直到脏页被回写到磁盘
vm.dirty_writeback_centisecs = 500 #内核线程(pdflush/flush/kdmflush)多久唤醒一次来检查是否需要将cache中的数据写入磁盘,单位1/100秒
vm.drop_caches = 0 #释放cache,该参数每修改一次,触发一次释放操作(手动释放caches时就需要改变此值)
vm.extfrag_threshold = 500
vm.hugepages_treat_as_movable = 0
vm.hugetlb_shm_group = 0
vm.laptop_mode = 0
vm.legacy_va_layout = 0
vm.lowmem_reserve_ratio = 256 256 32
vm.max_map_count = 65530
vm.memory_failure_early_kill = 0
vm.memory_failure_recovery = 1
vm.min_free_kbytes = 45056 #系统内核保留内存的最低值
vm.min_slab_ratio = 5
vm.min_unmapped_ratio = 1
vm.mmap_min_addr = 4096
vm.mmap_rnd_bits = 28
vm.mmap_rnd_compat_bits = 8
vm.nr_hugepages = 0 #控制内存是否可以使用大页面
vm.nr_hugepages_mempolicy = 0
vm.nr_overcommit_hugepages = 0
vm.nr_pdflush_threads = 0
vm.numa_zonelist_order = default
vm.oom_dump_tasks = 1 #OOM信息打印(建议值1 能够在发生OOM后查看当时情景)
vm.oom_kill_allocating_task = 0 #控制是否杀死触发OOM的进程(建议值0 OOM发生时内核自动kill内存占用最多的进程)
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0 #控制是否允许超额申请内存
vm.overcommit_ratio = 50 #允许超额申请物理内容+此百分比的swap内存(只有当vm.overcommit_memory=2时此值才会生效)
vm.page-cluster = 3 #控制内核一次从SWAP中连续读取2的多少次幂内存页
vm.panic_on_oom = 0 #控制内核在OOM时是否panic(恐慌)
vm.percpu_pagelist_fraction = 0
vm.stat_interval = 1 #VM统计信息更新的时间间隔,默认值1s
vm.swappiness = 30 #控制物理内存剩余%多少时使用SWAP(建议值0,但0并非禁用SWAP,只是充分利用物理内存)
vm.user_reserve_kbytes = 60940 #始终会预留给用户空间的内存
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0

顺便附上以功能模块归类后的参数调优列表

RAID性能参数调优

dev.raid.speed_limit_min = 1000 #RAID最小读取速率
dev.raid.speed_limit_max = 200000 #RAID最大读取速率,如果RAID性能较高,可以修改此上限来提升IO性能
dev.scsi.logging_level = 0 #是否开启scsi磁盘的日志功能,一般情况不建议开启

网络协议栈调整:单位是字节

net.core.optmem_max = 20480 #每个套接字所允许的最大缓冲区的大小
net.core.rmem_default = 212992 #网络协议栈默认接收内存
net.core.rmem_max = 212992 #网络协议栈最大接收内存
net.core.wmem_default = 212992 #网络协议栈默认发送内存
net.core.wmem_max = 212992 #网络协议栈最大发送内存
net.ipv4.tcp_moderate_rcvbuf = 1 #是否开启TCP缓冲内存自动调整功能
net.ipv4.tcp_mem = 45918 61225 91836 #TCP协议栈缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket
net.ipv4.tcp_rmem = 4096 87380 6291456 #TCP套接字接收缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket
net.ipv4.tcp_wmem = 4096 16384 4194304 #TCP套接字发送缓冲区的最小值、压力值、最大值;高于最大值,TCP拒绝分配socket

TCP并发性能优化

net.core.somaxconn = 1280 #定义了系统中每一个端口最大的监听队列长度,这是个全局的参数
net.ipv4.tcp_max_syn_backlog = 1280 #SYN队列的长度,增大其值可以增大服务器接收并发的能力
net.ipv4.tcp_max_tw_buckets = 8192 #针对TIME-WAIT数量配置其上限
net.ipv4.tcp_syn_retries = 6 #server主动连接client时发送syn的重试次数
net.ipv4.tcp_synack_retries = 5 #server应答client的synack的重试次数
net.ipv4.tcp_fin_timeout = 30 #server端主动发起断开连接后保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_max_orphans = 8192 #允许保留的僵尸套接字的最大值
net.core.netdev_max_backlog = 2000 #网卡设备将请求放入队列的长度
net.core.netdev_tstamp_prequeue = 1 #网络设备预置队列序号

net.ipv4.tcp_tw_recycle = 0 #是否需要快速回收TIME-WAIT套接字,不建议快速回收,但可以reuse,否则NAT环境会有问题
net.ipv4.tcp_tw_reuse = 1 #是否允许将处于TIME-WAIT状态的socket(TIME-WAIT的端口)用于新的TCP连接
net.ipv4.tcp_window_scaling = 1 #要支持超过64KB的TCP窗口,必须启用该值,TCP连接双方都启用时才生效
net.ipv4.tcp_syncookies = 1 #是否打开SYN Cookie功能,该功能可以防止部分SYN×××
net.ipv4.tcp_timestamps = 1 #是否启用TCP时间戳(会在TCP包头增加12个字节),增加了报文大小,但实现了更好的TCP性能

对于用不上IPV6的建议直接禁用

net.ipv6.conf.default.disable_ipv6 = 1 #默认是否在lo接口上禁用IPv6 (XenServer虚机禁用无效)
net.ipv6.conf.all.disable_ipv6 = 1 #是否在所有接口上禁用IPv6 (XenServer虚机禁用无效)
net.ipv6.conf.lo.disable_ipv6 = 1 #是否在lo接口上禁用IPv6 (XenServer虚机禁用无效)

系统端口设定

net.ipv4.ip_local_port_range = 10000 65535 #服务器端可用端口范围(建议值 1024 65535)
net.ipv4.ip_local_reserved_ports = #系统预留端口列表:可以防止并发时占用服务端口

TCP丢包重传机制控制,TCP拥塞控制算法对TCP传输速率的影响比较大

net.ipv4.tcp_available_congestion_control = cubic reno #内核中可用的TCP拥塞控制算法
net.ipv4.tcp_congestion_control = cubic #当前正在使用的TCP拥塞控制算法
net.ipv4.tcp_allowed_congestion_control = cubic reno #IPV4 TCP允许的拥塞控制算法

TCP keepalive时长控制

net.ipv4.tcp_keepalive_intvl = 30 #探测消息未获得响应时,重发该消息的间隔时间(秒)
net.ipv4.tcp_keepalive_probes = 3 #在认定TCP连接失效之前,最多发送多少个keepalive探测消息
net.ipv4.tcp_keepalive_time = 1800 #TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效

memory

vm.overcommit_memory = 0 #控制是否允许超额申请内存
vm.overcommit_ratio = 50 #只有当vm.overcommit_memory=2时此值才会生效

vm.page-cluster = 3 #控制内核一次从SWAP中连续读取2的多少次幂内存页

vm.panic_on_oom = 0 #控制内核在OOM时是否panic(恐慌)
vm.stat_interval = 1 #VM统计信息更新的时间间隔,默认值1s

vm.swappiness = 0 #控制物理内存剩余%多少时使用SWAP(建议值0,但0并非禁用SWAP,只是充分利用物理内存)
vm.min_free_kbytes = 45056 #系统内核保留内存的最低值
vm.user_reserve_kbytes = 60942 #始终会预留给用户空间的内存,此处预留60M
vm.admin_reserve_kbytes = 8192 #始终会预留给管理员的内存,此处预留8M

OOM控制

vm.oom_dump_tasks = 1 #OOM信息打印
vm.oom_kill_allocating_task = 0 #控制是否杀死触发OOM的进程(建议值0 OOM发生时内核自动kill内存占用最多的进程)

安全防护模块

net.ipv4.conf.default.log_martians = 0 #默认是否开启并记录欺骗,源路由和重定向数据包(如果是路由器建议值为1)
net.ipv4.conf.all.log_martians = 0 #是否开启并记录欺骗,源路由和重定向数据包:记录带有不允许的地址的数据报到内核日志中(如果是路由器建议值为1)
net.ipv4.conf.default.accept_redirects = 1 #默认是否接收重写过的数据包
net.ipv4.conf.all.accept_redirects = 1 #是否接收重写过的数据包:用作路由器时默认值为0
net.ipv4.conf.default.accept_source_route = 0 #默认是否接收无源路由的数据包
net.ipv4.conf.all.accept_source_route = 0 #是否接收无源路由的数据包
net.ipv4.conf.default.secure_redirects = 1 #默认是否支持安全重定向数据包
net.ipv4.conf.all.secure_redirects = 1 #是否支持安全重定向数据包
net.ipv4.conf.default.rp_filter = 1 #默认是否开启反向路径过滤
net.ipv4.conf.all.rp_filter = 1 #是否开启反向路径过滤

net.ipv4.tcp_invalid_ratelimit = 500 #无效数据包发送速率时间限制(单位:毫秒)
net.ipv4.tcp_limit_output_bytes = 262144 #单个套接字限制最大输出字节数

保障TCP通信质量

net.ipv4.tcp_sack = 1 #是否启用有选择的应答(Selective Acknowledgment),使TCP只重新发送交互过程中丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到了。如此大大提高了客户端与服务器端数据交互的效率
net.ipv4.tcp_fack = 1 #启用转发应答(Forward Acknowledgment 建议值1),可以进行有选择应答(SACK)从而减少拥塞情况的发生

net.ipv4.tcp_slow_start_after_idle = 1 #拥塞窗口在经过一段时间空闲后是否需要重新初始化
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_retries1 = 3 #放弃回应一个TCP连接请求前进行重试的次数
net.ipv4.tcp_retries2 = 15 #放弃一个已经建立的TCP连接前进行重试的次数
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_mtu_probing = 0 #是否开启tcp层路径mtu发现
net.ipv4.tcp_no_metrics_save = 0 #是否将LAST_ACK状态保存各种连接信息到路由缓存中:方便下次连接时快速恢复现场

IO密集性服务器优化参数

vm.dirty_expire_centisecs = 3000 #声明Linux内核写缓冲区里面的数据多"旧"了之后,pdflush/flush/kdmflush进程就开始考虑写到磁盘中去
vm.dirty_background_ratio = 10 #当系统脏页的比例或者所占内存数量超过 dirty_background_ratio(百分数)阈值时,启动相关内核线程(pdflush/flush/kdmflush)开始将脏页写入磁盘
vm.dirty_ratio = 30 #当系统pagecache的脏页达到系统内存 dirty_ratio(百分数)阈值时,系统就会阻塞新的写请求,直到脏页被回写到磁盘

vm.drop_caches = 0 #释放cache,该参数每修改一次,触发一次释放操作
vm.dirty_writeback_centisecs = 500 #内核线程(pdflush/flush/kdmflush)多久唤醒一次来检查是否需要将cache中的数据写入磁盘,单位1/100秒

LVS负载均衡需要修改选项arp_ignore=1,arp_announce=2,两项的默认开关不用修改,需要修改all和lo

net.ipv4.conf.default.arp_ignore = 0
net.ipv4.conf.all.arp_ignore = 0 #定义对目标地址为本地IP的ARP询问不同的应答模式
#0:回应任何网络接口上对任何本地IP地址的arp查询请求
#1:只回答目标IP地址是来访网络接口本地地址的ARP查询请求
#2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内 
#3:不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应
#8:不回应所有(本地地址)的arp查询
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.default.arp_announce = 0
net.ipv4.conf.all.arp_announce = 0 #对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
#0: 在任意网络接口(eth0,eth1,lo)上的任何本地地址
#1:尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理. 
#2:对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.ip_no_pmtu_disc = 0 #是否关闭路径MTU探测功能
net.ipv4.ip_forward_use_pmtu = 0 #是否支持巨型帧转发(使用LVS做负载均衡器时建议此值为1)

net.ipv4.conf.default.arp_accept = 0
net.ipv4.conf.all.arp_accept = 0 #默认对不在ARP表中的IP地址发出的APR包的处理方式:0不在ARP表中创建对应IP地址的表项;1在ARP表中创建对应IP地址的表项

net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.all.arp_filter = 0 # 0:内核设置每个网络接口各自应答其地址上的arp询问。这项看似会错误的设置却经常能非常有效,因为它增加了成功通讯的机会。在Linux主机上,每个IP地址是网络接口独立的,而非一个复合的接口。只有在一些特殊的设置的时候,比如负载均衡的时候会带来麻烦
#1:允许多个网络介质位于同一子网段内,每个网络界面依据是否内核指派路由该数据包经过此接口来确认是否回答ARP查询(这个实现是由来源地址确定路由的时候决定的),换句话说,允许控制使用某一块网卡(通常是第一块)回应arp询问

net.ipv4.conf.default.arp_notify = 0
net.ipv4.conf.all.arp_notify = 0 #是否开启arp通知链操作:0不做任何操作,1当设备或硬件地址改变时自动产生一个arp请求
net.ipv4.conf.default.bootp_relay = 0
net.ipv4.conf.all.bootp_relay = 0 #是否接收源地址为0.a.b.c,目的地址不是本机的数据包,是为了支持bootp服务
net.ipv4.conf.default.disable_policy = 0
net.ipv4.conf.all.disable_policy = 0 #是否禁止internet协议安全性验证
net.ipv4.conf.default.disable_xfrm = 0
net.ipv4.conf.all.disable_xfrm = 0 #是否禁止internet协议安全性加密

net.ipv4.conf.default.force_igmp_version = 0
net.ipv4.conf.all.force_igmp_version = 0

路由器选项控制

net.ipv4.conf.default.forwarding = 0
net.ipv4.ip_forward = 0 #是否启用IP转发
net.ipv4.conf.all.forwarding = 0 #是否启用转发功能
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.all.mc_forwarding = 0 #是否进行多播路由(只有内核编译有CONFIG_MROUTE并且有路由服务程序在运行该参数才有效)
net.ipv4.conf.default.medium_id = 0
net.ipv4.conf.all.medium_id = 0 #用来区分不同媒介.两个网络设备可以使用不同的值,使他们只有其中之一接收到广播包.通常,这个参数被用来配合proxy_arp实现roxy_arp的特性即是允许arp报文在两个不同的网络介质中转发.
#0:表示各个网络介质接受他们自己介质上的媒介
#-1:表示该媒介未知
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1 #主备IP地址切换控制机制:0当接口的主IP地址被移除时,删除所有次IP地址;1当接口的主IP地址被移除时,将次IP地址提升为主IP地址
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.proxy_arp = 0 #是否启用arp代理功能
net.ipv4.conf.default.proxy_arp_pvlan = 0
net.ipv4.conf.all.proxy_arp_pvlan = 0 #回应代理ARP的数据包从接收到此代理ARP请求的网络接口出去
net.ipv4.conf.default.route_localnet = 0
net.ipv4.conf.all.route_localnet = 0 #是否允许外部访问localhost
net.ipv4.conf.default.shared_media = 1
net.ipv4.conf.all.shared_media = 1 #发送或接收RFC1620 共享媒体重定向 会覆盖ip_secure_redirects的值

路由机制控制

net.ipv4.ip_no_pmtu_disc = 0 #是否关闭路径MTU探测功能
net.ipv4.ip_forward_use_pmtu = 0 #是否支持巨型帧转发(使用LVS做负载均衡器时建议此值为1)
net.ipv4.conf.default.send_redirects = 1 #默认是否发送重定向数据包
net.ipv4.conf.all.send_redirects = 1 #是否发送重定向数据包
net.ipv4.ip_default_ttl = 64 #定义数据报的生存周期:最多经过多少路由器后数据将被丢弃

net.ipv4.conf.default.src_valid_mark = 0 #默认是否为源地址有效的数据包打标记
net.ipv4.conf.all.src_valid_mark = 0 #是否为所有接口上源地址有效的数据包打标记

net.ipv4.conf.default.tag = 0
net.ipv4.conf.all.tag = 0

net.ipv4.conf.default.accept_local = 0 #默认是否允许接收从本机IP地址上发送给本机的数据包
net.ipv4.conf.all.accept_local = 0 #是否允许所有接口接收从本机IP地址上发送给本机的数据包

内存大页面使用策略

vm.nr_hugepages = 0 #控制内存是否可以使用大页面

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值