Aws 迁移 阿里云 踩坑 (Too many open files[24])

  1. php7.2 + swoole 1.10.3

    ERROR zm_deactivate_swoole (ERROR 503): Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 4096 bytes)

主master 进程内存溢出问题 减小 buffer_output_size 参数 32M 内存溢出有所改善, 但阿里云个别服务器内存仍在持续增长.

[2018-11-02 15:21:48 #17293.8]  ERROR   swServer_master_onAccept (ERROR 502): accept() failed. Error: Too many open files[24]

worker 进程错误日志提示 打开文件数过多, 调整 ulimit -n 参数 仍然存在问题.
dispatch_func return -1 导致问题出现, -1 表示 master/manage 进程 , 阿里云环境存在无响应头的请求包

经过测试 在 Server Start 和 Manage Start 启动时 打印worker_id 返回的都是 -1

官方文档

dispatch函数必须返回投递的目标worker进程id
返回的worker_id不得超过serv->worker_num,否则底层会抛出段错误
返回负数(return -1)表示`丢弃此数据包`
data可以读取到事件的类型和长度
conn是连接的信息,如果是UDP数据包,conn为NULL

但是 实际上 return -1 并不是丢包 而是 发送给master主进程 ....

  1. 阿里云域名解析 部分功能不支持

  2. 工具迁移过来的Redis 数据会取消掉失效时间, 有失效时间key

相关文章

发表新评论