作者小头像 Lv.2
74 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
65
9
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2026/10/23 01:25:19 最后回复 yd_219604433 2026/10/24 01:32:31 版块 数据库
27 8 0
他的回复:
接楼上的参数调优,我补充一个生产视角:参数决定性能上限,但生产环境更要命的是“出事了能不能恢复、挂了能不能第一时间知道”。按备份、高可用、监控、账号四个方面说说我的经验: 一、备份(血的教训总结)1. 华为云 RDS 控制台直接开启自动备份,保留时长至少 7 天,核心业务建议 30 天;再在业务低峰期手动做一次全量备份,双保险。2. binlog 一定要保留,RDS 默认开启,保留时长和备份周期对齐。删库跑路的新闻里,能救命的往往都是 binlog。3. 每季度做一次“恢复演练”:拿备份在测试环境完整恢复一次,验证备份真的可用。没验证过的备份等于没有备份。 二、高可用1. 生产库必须一主一备(RDS 选高可用版),单实例就是单点故障,半夜被告警叫醒的滋味不好受。2. 读多写少的业务加只读副本,应用层做读写分离,别让报表查询拖垮主库。3. 应用和数据库之间建议加一层连接池中间件,避免业务直连打爆连接数。 三、监控告警(别等用户告诉你库挂了)1. CES 云监控配三个必告警项:CPU 使用率持续 10 分钟超过 80%、磁盘使用率超过 80%、慢 SQL 数量突增。2. 慢日志每天看一次,重点盯“新出现”的慢 SQL,而不是只看最慢的那几条。3. 磁盘空间最致命:RDS 磁盘写满会直接锁库只读,扩容一定要提前做,别等到 95% 才动手。 四、账号权限1. 生产库禁用 root 远程直连,业务账号按最小权限授权,只需要查的就别给删改权限。2. 密码定期轮换,RDS 支持在线重置密码,配合配置中心热更新,避免重启应用。 一句话总结:调优决定上限,备份和监控决定下限。先保证“坏了能恢复、挂了能知道”,再谈性能优化。
他的回复:
先说一个能省一半排查时间的办法:先看外网访问失败时的具体现象,现象不同,断点在完全不同的位置,不用把每一层都翻一遍。 一、30 秒定方向:看 telnet / curl 的报错 在你本地电脑上执行 telnet 公网IP 8080(或 curl -v --connect-timeout 5 http://公网IP:8080/): 1. 现象 A:一直卡住,最后超时(Trying... 然后 Connection timed out):数据包在半路被丢弃了。断点在:安全组规则没生效 → 网络 ACL → 系统防火墙 → EIP 没绑对/带宽为 0 → 本地网络。按第二部分的 1~4 步查。2. 现象 B:立刻返回 Connection refused(连接被拒绝):包已经到达 ECS,只是目标端口没在监听。断点在应用监听地址或应用没启动,直接看第二部分的第 5 步。 你本机 curl 127.0.0.1:8080 能通,只证明应用本身是活的,说明不了链路问题,这一步不用反复测。 二、按链路从外到内逐项验证 1. 确认规则加在了“这台”ECS 的“入方向”上(最常见的乌龙)控制台 → 弹性云服务器 → 点进这台实例 → 安全组,确认入方向有一条 TCP 8080、源 0.0.0.0/0。两个高频翻车点:① 改的是另一台机器的安全组;② 规则加到了“出方向”。一台 ECS 挂多个安全组时按并集生效,要逐个检查。安全组修改即时生效,不需要重启实例。 2. 确认 EIP 绑的是这台机器,且带宽正常控制台 → 网络 → 弹性公网 IP,核对绑定实例。按带宽计费的 EIP 如果带宽为 0,或账号欠费停服,外网必然不通。 3. 检查子网的网络 ACL(如果配了的话)子网若关联了 ACL,入方向默认拒绝,需要显式放行 8080。 4. 检查系统内部防火墙(安全组放行后最常见的真凶)- firewalld:sudo firewall-cmd --list-ports,看 8080 在不在;不在就执行 sudo firewall-cmd --add-port=8080/tcp --permanent && sudo firewall-cmd --reload- iptables/nftables:sudo iptables -S 或 sudo nft list ruleset 看 INPUT 链- Windows:检查“高级安全 Windows 防火墙”的入站规则定位阶段可临时放行验证,确认原因后改为精确放行,不要长期关闭防火墙。 5. 检查应用监听地址(第二常见真凶)ss -tlnp | grep 8080- 显示 127.0.0.1:8080 → 只监听了回环地址,外网必然不通。改应用配置绑定 0.0.0.0 后重启服务。- 显示 0.0.0.0:8080 或 *:8080 → 监听正常。- 应用跑在 Docker 里的话,还要确认启动时做了端口发布(-p 8080:8080),且容器内监听的是 0.0.0.0。 6. 抓包一锤定音(前面都没问题时用)在 ECS 上执行 sudo tcpdump -ni any tcp port 8080,同时从外网访问:- 完全看不到 SYN → 包没到主机,问题在云侧链路,回头查 1~3 步。- 能看到 SYN 但没有回 SYN-ACK → 包到了但应用层没响应,查 4~5 步。 三、两个容易被忽略的坑 - 本地运营商或公司网络可能封锁 80/443 以外的高位端口:换手机 4G/5G 热点测一次,如果热点能通、公司网不通,就是本地出口的问题,跟云上配置无关。- ping 通不代表端口通:ping 走的是 ICMP,安全组里放行了 ICMP 不代表放行了 TCP 8080,排查端口问题一律用 telnet / curl / nc 测 TCP。 按这个顺序走一遍,一般一轮就能定位到断点。如果还有疑问,把 ss -tlnp | grep 8080 和 sudo firewall-cmd --list-all 的输出贴出来,可以继续帮你看。