TeleDB系统内核参数优化建议

2022-02-23 00:00:00 参数 系统 内存 内核 缺省

内存管理相关参数

sysctl vm.swappiness=10  #5~10可选,但不可能阻止使用swap空间

vm.min_free_kbytes=1024000  #保证系统空闲内存维持在一定水平,同时保障内存管理low和min水位之间有足够间隔,正常业务设置为1024000,如果业务有大字段,同时更新查询频率比较大,可以在线调整此参数,范围在1024000-4096000之间。

vm.extra_free_kbytes=1024000 //centos6.x里面有此参数,centos7.x无此参数

vm.dirty_background_ratio = 5 #可选,这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存。

vm.dirty_ratio = 20  #可选,这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。

vm.vfs_cache_pressure=150 #可选,该参数表示内核回收用于directory和inode cache内存的倾向。缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。


文件系统参数

fs.file-max = 6815744  #该参数表示文件句柄的大数量。文件句柄设置表示在linux系统中可以打开的文件数量


网络参数

net.core.rmem_max = 4194304 #大的TCP数据接收缓冲

net.core.wmem_max = 2097152 #大的TCP数据发送缓冲

net.core.wmem_default = 262144 #表示接收套接字缓冲区大小的缺省值(以字节为单位)

net.core.rmem_default = 262144 #表示发送套接字缓冲区大小的缺省值(以字节为单位)

 

net.ipv4.tcp_syncookies = 1 #当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭。

net.ipv4.tcp_tw_reuse = 1 #允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

net.ipv4.tcp_tw_recycle = 1 #TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭,注意如果是nat-nat网络,并与net.ipv4.tcp_timestamps = 1组合使用,则会出现时断时续的情况

net.ipv4.tcp_fin_timeout = 30 #修改系統默认的 TIMEOUT 时间,避免服务器被大量的TIME_WAIT拖死

net.ipv4.tcp_keepalive_time = 1200 #当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟

net.ipv4.ip_local_port_range = 9000 65000 #如果连接数本身就很多,可以再优化一下TCP的可使用端口范围,进一步提升服务器的并发能力,默认值是32768到61000

net.ipv4.tcp_max_syn_backlog = 8192 #SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数

net.ipv4.tcp_max_tw_buckets = 5000 #系统同时保持TIME_WAIT的大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息,默认为180000


其他对网卡的设置

net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.all.arp_filter = 0

net.ipv4.conf.default.rp_filter = 0

net.ipv4.conf.default.arp_filter = 0

net.ipv4.conf.lo.rp_filter = 0

net.ipv4.conf.lo.arp_filter = 0

net.ipv4.conf.em1.rp_filter = 0

net.ipv4.conf.em1.arp_filter = 0

net.ipv4.conf.em2.rp_filter = 0

net.ipv4.conf.em2.arp_filter = 0


其它内核参数

kernel.shmmni = 4096 #这个内核参数用于设置系统范围内共享内存段的大数量。该参数的默认值是 4096 。通常不需要更改kernel.sem = 250 32000 100 142   

kernel.shmall = 2097152 #该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改

kernel.shmmax = 2147483648 #该参数定义了共享内存段的大尺寸(以字节为单位),此值默认为物理内存的一半

kernel.sysrq = 0 #如无需调试系统排查问题,这个必须为0

原文链接:https://mp.weixin.qq.com/s/at5zfbhMZNoX7x0Ow1Lqng

相关文章