分类: 云厂商
-
针对 Yii2 队列扩展 Redis 驱动中 info 命令显示 reserved 状态队列一直存在的问题,在确认系统日志无异常且还原队列作业代码后,虽能短暂恢复正常,但长时间运行后故障依旧。通过排查发现 attempts 选项生效但 reserved 状态仍积压,最终将 Supervisor 配置中的 numprocs 值调整为 2,启动多个 worker 后,该状态队列持续时间大幅缩短至 10 分钟左右,整体队列处理可在半小时内完成,问题得到有效解决。
-
针对阿里云 Redis 报错 Redis error ERR for redis cluster, eval/evalsha number of keys can’t be negative or zero 的问题,经参考开发者文档分析,这是由于云 Redis 集群对 Lua 脚本有限制,调用时必须携带 key,否则会直接返回错误。文章中采用了放弃使用阿里云 Redis 集群的方式使问题得以解决,并指出后续若要支持 Redis 集群,需要在程序层面进行调整。
-
CakePHP v2.6.4 运行中出现 SQLSTATE[HY000] [2002] Connection timed out 报错,经检查发现数据库主机地址配置为内网IP,导致容器无法访问。将该地址调整为外网IP后,打印数据库连接信息确认容器可以正常访问,问题得以解决。
-
针对产品部署时初始化数据的存储需求,文章阐述了在容器启动时将文件复制至 NAS 存储的实现方法。基于 CakePHP v2.6.4 框架,通过新建 Shell 脚本文件,编写了将本地目录下特定日期文件夹中的所有文件同步至挂载 NAS 存储目录的逻辑。操作中利用命令行工具执行同步任务,并配置了容器启动脚本自动运行该命令。最终经日志验证,文件成功复制至指定 NAS 路径,满足了自动化初始化存储的预期。
-
本文记录了在 Rancher 环境中解决 NAS 存储挂载失败的过程。起初配置卷映射后,容器日志出现变量未绑定错误且目录挂载不符合预期。通过在调度规则中指定特定主机进行升级,挂载恢复正常。经排查分析,原因是初始调度到的目标主机 lb 上不存在 /webtv 目录,而调整后的主机 wjdev02 上包含该路径,最终确认故障根源在于物理节点存储资源的差异。
-
文章介绍了在 Yii 2.0 中利用 Docker、Supervisor 及 Redis 锁定机制实现控制台命令集群部署的方法。通过改造 Redis 锁定逻辑,在同步任务前获取锁,结束后释放锁,确保同一租户的同步任务在多台服务器间不重复执行,解决了冗余问题。测试验证了该方案能显著提升任务处理性能与同步即时性,同时给出了同步间隔的计算公式及容器数量建议。
-
本文介绍了在 Yii 2.0 生产环境中开启 Schema 缓存以优化性能的操作,包括修改配置文件、验证 Redis 缓存生成及手动清理缓存的命令。测试发现清除 Schema 缓存后并非立即刷新数据,而是在下次调用相关表结构时触发更新。文章还说明了在 Docker 容器部署和 Rancher 升级时执行数据库迁移与清理命令的流程。性能测试对比显示,开启缓存后接口并发峰值反而略有下降,因此决定暂时保留该配置不回退。
-
文章针对 Yii2 队列扩展 Redis 驱动中 info 命令显示 reserved 状态队列积压的问题进行分析,发现异常处理逻辑缺陷导致作业无法释放。在 Supervisor 仅启动单一监听进程的情况下,为恢复程序运行,通过 remove 命令逐个删除作业。实际操作结果显示,reserved 状态队列数量持续减少,done 状态数量增加,验证了该手动清理方案符合预期。
-
本文记录了基于阿里云将个人博客迁移升级的过程。由于容器服务费用超出预算,最终决定沿用原生系统,将数据盘扩容并升级至CentOS 7.7,使用OneinStack自动部署LNMP环境与PHP 7.4。配置云数据库RDS后,通过导入SQL文件并修改WordPress配置文件完成了数据迁移,最终实现了博客成功跳转、支持HTTPS及WordPress版本的正常升级。
-
本文针对基于 Yii 2.0 的 Supervisor 命令行脚本在持续运行期间占用内存过高的问题进行了分析与解决。通过监控 Docker 容器资源,定位了 Redis AR 模型查询和高频执行导致的内存增长。优化措施包括使用 unset() 释放变量、利用 asArray() 获取数组形式结果、修复 HTTP 客户端 400 错误以及引入同步标识控制执行频率。最终测试表明,调整查询方式和执行策略有效降低了内存占用,证明了优化方案的可行性。
