centos集群方案4-TCP|Socket优化

本文详细介绍了如何通过修改系统配置来优化Socket和TCP性能,包括调整最大文件打开数、设置Tcp参数等,适用于Nginx及Socket服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Socket优化

lsof -p pid |wc -l  查看系统占用

我们可以通过ulimit –n命令来查看最大文件打开数,如下:

32768

一般情况下是1024,我系统已经改为了32768。


修改/etc/security/limits.conf   /etc/security/limits.d/90-nproc.conf 

通过 vi /etc/security/limits.conf    and  /etc/security/limits.d/90-nproc.conf 修改其内容,在文件最后加入(数值也可以自己定义):

cat <<EOF >>/etc/security/limits.conf

*       soft    nofile       65535

*       hard    nofile       65535

EOF


/etc/security/limits.d/90-nproc.conf

root        soft    nproc       102400

root        hard    nproc       102400

mysql       soft    nproc       102400

mysql        hard    nproc      102400

*          soft    nproc     32768



修改/etc/pam.d/login
vi /etc/pam.d/login
在后面加上

session required        /lib64/security/pam_limits.so

然后重新登录即可生效了。



Tcp优化  试用于 nginx 和socket服务器

vi /etc/sysctl.conf

vm.overcommit_memory = 1

net.ipv4.tcp_sack = 1

net.ipv4.tcp_window_scaling = 1


net.ipv4.tcp_rmem = 4096 87380 4194304

net.ipv4.tcp_wmem = 4096 16384 4194304

net.ipv4.tcp_max_syn_backlog = 65536



fs.file-max =9553600

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_probes = 2

net.ipv4.tcp_keepalive_intvl = 2


net.nf_conntrack_max=6553600

net.netfilter.nf_conntrack_max=6553600


# Controls IP packet forwarding

net.ipv4.ip_forward = 1


sysctl -p 执行生效


报错:

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key

error: "net.bridge.bridge-nf-call-iptables" is an unknown key

error: "net.bridge.bridge-nf-call-arptables" is an unknown key

 

解决方法如下:

modprobe bridge

echo "modprobe bridge" >>/etc/rc.local


linux 优化 http://www.netkou.cn/?post=118








<think>好的,用户现在问的是在CentOS 9上配置MySQL 8.4集群。首先,我需要确认MySQL的版本是否存在,因为根据之前的系统指令,我的知识截止到2023年10月,而MySQL 8.4可能是在那之后发布的。这时候,我需要先核实这一点。 用户可能已经知道有MySQL 8.4,或者可能是个笔误。考虑到MySQL的版本通常以8.0.x发布,比如8.0.34,可能用户指的是8.0版本的最新更新。我需要先指出这一点,避免用户误解,同时假设他们确实需要配置集群,可能是指InnoDB Cluster或者Galera Cluster。 接下来,用户的操作系统是CentOS 9,我需要确认CentOS 9的可用性,因为CentOS 9可能已经发布,但需要检查是否稳定,或者是否有一些特定的包需要处理。另外,可能需要安装MySQL的官方仓库,因为默认的仓库可能没有最新版本。 然后,集群配置通常涉及几个步骤:安装MySQL、配置节点、设置复制、配置集群管理工具如MySQL Shell和MySQL Router。这里需要分步骤详细说明,同时确保命令的正确性,比如使用dnf安装,配置SELinux和防火墙,初始化数据目录,修改配置文件等。 用户可能没有详细说明集群类型,所以需要涵盖InnoDB Cluster的配置,因为这是MySQL官方推荐的方案。同时,需要注意高可用性和数据一致性的问题,以及网络配置的要求,比如节点之间的通信端口是否开放。 可能的误区是用户可能混淆了不同的集群技术,比如Galera Cluster和InnoDB Cluster,需要指出两者的区别,并推荐官方方案。此外,用户可能在配置过程中遇到权限问题或者防火墙设置,需要强调这些步骤的重要性。 最后,需要提醒用户进行测试,验证集群状态,确保各节点正常同步,并且给出后续维护的建议,比如监控和备份。同时,如果MySQL 8.4确实不存在,需要告知用户确认版本号,避免配置错误。</think>### **MySQL 8.4集群配置(CentOS 9)说明** (注:截至2023年10月,**MySQL官方最新稳定版本为8.0.x**,"8.4"可能是版本号表述误差。以下以MySQL 8.0集群配置为例,若需8.4特定功能请核实版本号) --- #### **一、基础环境准备** 1. **系统要求** - CentOS 9 Minimal安装 - 所有节点时间同步(NTP服务启用) - 关闭SELinux:`sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config` - 开放防火墙端口: ```bash firewall-cmd --permanent --add-port=3306/tcp # MySQL服务 firewall-cmd --permanent --add-port=33060/tcp # X协议 firewall-cmd --permanent --add-port=33061/tcp # Group Replication firewall-cmd --reload ``` 2. **MySQL安装(所有节点执行)** ```bash # 添加MySQL官方仓库 dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm dnf install mysql-server mysql-shell -y systemctl enable mysqld --now ``` --- #### **二、InnoDB Cluster配置(推荐方案)** 1. **初始化节点** ```bash # 获取临时密码 grep 'temporary password' /var/log/mysqld.log # 安全配置 mysql_secure_installation ``` 2. **配置文件修改(/etc/my.cnf)** ```ini [mysqld] server_id=1 # 各节点需唯一(如1,2,3...) datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # 集群配置 plugin_load_add='group_replication.so' loose_group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # 集群UUID loose_group_replication_start_on_boot=OFF loose_group_replication_local_address= "节点IP:33061" loose_group_replication_group_seeds= "节点1IP:33061,节点2IP:33061,节点3IP:33061" ``` 3. **创建集群(主节点执行)** ```sql -- 创建集群账户 CREATE USER 'cluster_user'@'%' IDENTIFIED BY 'SecurePass123!'; GRANT REPLICATION SLAVE ON *.* TO 'cluster_user'@'%'; -- 配置组复制 SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF; ``` 4. **添加其他节点** ```sql -- 在从节点执行 CHANGE MASTER TO MASTER_USER='cluster_user', MASTER_PASSWORD='SecurePass123!' FOR CHANNEL 'group_replication_recovery'; START GROUP_REPLICATION; ``` --- #### **三、集群验证** 1. **查看节点状态** ```sql SELECT * FROM performance_schema.replication_group_members; ``` ✅ 正常输出应显示所有节点状态为`ONLINE` 2. **数据同步测试** ```sql -- 主节点创建测试数据 CREATE DATABASE cluster_test; -- 从节点查询验证 SHOW DATABASES; ``` --- #### **四、高可用扩展** 1. **MySQL Router部署** ```bash dnf install mysql-router -y mysql-router --bootstrap cluster_user@主节点IP:3306 --directory /opt/mysqlrouter systemctl enable mysqlrouter --now ``` 2. **连接测试** ```bash mysql -u user -p -h 127.0.0.1 --port 6446 ``` --- #### **五、注意事项** 1. **网络要求** - 节点间延迟需<1秒 - 建议使用专用网络通信 2. **数据一致性** - 默认使用`group_replication_consistency=EVENTUAL` - 强一致性需求可改为`BEFORE_ON_PRIMARY_FAILOVER` 3. **版本兼容性** - 所有节点必须使用完全相同的MySQL版本 --- 如需更详细的负载均衡配置或故障转移演练,请提供具体需求场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值