cat >>/etc/sysctl.conf <<eoof
# add by digoal.zhou
fs.aio-max-nr = 1048576
fs.file-max = 76724600
# 可選:kernel.core_pattern = /data01/corefiles/core_%e_%u_%t_%s.%p
# /data01/corefiles 事先建好,權限777,如果是軟連結,對應的目錄修改為777
kernel.sem = 4096 2147483647 2147483646 512000
# 信号量, ipcs -l 或 -u 檢視,每16個程序一組,每組信号量需要17個信号量。
kernel.shmall = 107374182
# 所有共享記憶體段相加大小限制 (建議記憶體的80%),機關為頁。
kernel.shmmax = 274877906944
# 最大單個共享記憶體段大小 (建議為記憶體一半), >9.2的版本已大幅降低共享記憶體的使用,機關為位元組。
kernel.shmmni = 819200
# 一共能生成多少共享記憶體段,每個pg資料庫叢集至少2個共享記憶體段
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 262144
# the default setting of the socket receive buffer in bytes.
net.core.rmem_max = 4194304
# the maximum receive socket buffer size in bytes
net.core.wmem_default = 262144
# the default setting (in bytes) of the socket send buffer.
net.core.wmem_max = 4194304
# the maximum send socket buffer size in bytes.
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_mem = 8388608 12582912 16777216
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
# 開啟syn cookies。當出現syn等待隊列溢出時,啟用cookie來處理,可防範少量的syn攻擊
net.ipv4.tcp_timestamps = 1
# 減少time_wait
net.ipv4.tcp_tw_recycle = 0
# 如果=1則開啟tcp連接配接中time-wait套接字的快速回收,但是nat環境可能導緻連接配接失敗,建議服務端關閉它
net.ipv4.tcp_tw_reuse = 1
# 開啟重用。允許将time-wait套接字重新用于新的tcp連接配接
net.ipv4.tcp_max_tw_buckets = 262144
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.tcp_wmem = 8192 65536 16777216
net.nf_conntrack_max = 1200000
net.netfilter.nf_conntrack_max = 1200000
vm.dirty_background_bytes = 409600000
# 系統髒頁到達這個值,系統背景刷髒頁排程程序 pdflush(或其他) 自動将(dirty_expire_centisecs/100)秒前的髒頁刷到磁盤
# 預設為10%,大記憶體機器建議調整為直接指定多少位元組
vm.dirty_expire_centisecs = 3000
# 比這個值老的髒頁,将被刷到磁盤。3000表示30秒。
vm.dirty_ratio = 95
# 如果系統程序刷髒頁太慢,使得系統髒頁超過記憶體 95 % 時,則使用者程序如果有寫磁盤的操作(如fsync, fdatasync等調用),則需要主動把系統髒頁刷出。
# 有效防止使用者程序刷髒頁,在單機多執行個體,并且使用cgroup限制單執行個體iops的情況下非常有效。
vm.dirty_writeback_centisecs = 100
# pdflush(或其他)背景刷髒頁程序的喚醒間隔, 100表示1秒。
vm.swappiness = 0
# 不使用交換分區
vm.mmap_min_addr = 65536
vm.overcommit_memory = 0
# 在配置設定記憶體時,允許少量over malloc, 如果設定為 1, 則認為總是有足夠的記憶體,記憶體較少的測試環境可以使用 1 .
vm.overcommit_ratio = 90
# 當overcommit_memory = 2 時,用于參與計算允許指派的記憶體大小。
vm.swappiness = 0
# 關閉交換分區
vm.zone_reclaim_mode = 0
# 禁用 numa, 或者在vmlinux中禁止.
net.ipv4.ip_local_port_range = 40000 65535
# 本地自動配置設定的tcp, udp端口号範圍
fs.nr_open=20480000
# 單個程序允許打開的檔案句柄上限
# 以下參數請注意
# vm.extra_free_kbytes = 4096000
# vm.min_free_kbytes = 2097152 # vm.min_free_kbytes 建議每32g記憶體配置設定1g vm.min_free_kbytes
# 如果是小記憶體機器,以上兩個值不建議設定
# vm.nr_hugepages = 66536
# 建議shared buffer設定超過64gb時 使用大頁,頁大小 /proc/meminfo hugepagesize
# vm.lowmem_reserve_ratio = 1 1 1
# 對于記憶體大于64g時,建議設定,否則建議預設值 256 256 32
eoof