建议服务器内存在8G或以上
1、内核参数优化 1)备份: 1 cp /etc/sysctl.conf /etc/sysctl.conf.bak
2)添加内容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 vi /etc/sysctl.conf #网络性能调优 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_mem = 131072 262144 524288 net.ipv4.tcp_rmem = 8760 256960 4088000 net.ipv4.tcp_wmem = 8760 256960 4088000 #TCP/IP调优参数 net.core.rmem_default = 256960 net.core.rmem_max = 513920 net.core.wmem_default = 256960 net.core.wmem_max = 513920 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 #常见内核参数调优 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_keepalive_time = 1400 net.ipv4.ip_local_port_range = 9000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384 #内存单个段允许使用的大小,可以设置到总内存的90% #例如16G内存16*1024*1024*1024*90%=15461882265 #shmall的大小可以是15461882265/4k(分页大小,getconf PAGESIZE可得到)= 3774873 #示例参数以8g内存作为标准 kernel.shmmax=7730941132 kernel.shmall=1887436 kernel.msgmax=65535 kernel.msgmnb=65535 #以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。 net.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
3)生效配置:
2、关闭透明大页 目前已知mysql、oracle、redis内存大页功能会产生性能影响
在/etc/rc.local中增加如下内容
1 2 3 4 5 6 if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
3、调整客户端最大数 1 2 3 4 5 vi /etc/security/limits.conf * soft nofile 65536 # open files (-n) * hard nofile 65536 * soft nproc 65565 * hard nproc 65565 # max user processes (-u)
4、关闭selinux 修改/etc/selinux/config文件中设置
5、关闭防火墙 1 2 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
6、禁用交换区 可以执行如下命令:
7、修改mysql配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [mysqld] server_id=1 transaction_isolation=READ-COMMITTED character_set_server=utf8mb4 collation_server=utf8mb4_unicode_ci log_bin=db-binlog binlog_format=mixed expire_logs_days=15 max_connections=200 join_buffer_size=4M sort_buffer_size=4M read_rnd_buffer_size=16M innodb_log_buffer_size=16M innodb_buffer_pool_size=【物理内存*(0.5~0.75)】 innodb_log_file_size=256M [client] default-character-set=utf8mb4