我们正在尝试将 REE 上编写的应用程序从云提供商 A 迁移到云提供商 B。应用程序代码、VM 规格和操作系统相同。基本区别在于云提供商 A 使用 Xen 和半虚拟化,而云提供商 B 使用 KVM 和完全虚拟化。哦,是的,ulimit -a
两种设置都类似。
但是在云提供商 B 上,我们经常会遇到如下错误:
应用程序消息:启动 Web 应用程序时发生错误:它未及时写入启动响应。请阅读本文有关此问题的更多信息
提供商 A 上的安装程序有实际负载,从未出现过此类错误。提供商 B 上的安装程序在 18% 的时间内会像这种情况崩溃,但只有一名用户。
我读过文档但是它的解决方案似乎并不适用于我们的情况(我们直接生成,而不是由于连接到 Postgres 而智能地生成),或者如果它们适用,我希望这里的人们可以指出如何。
是的,我知道更好的途径是从 REE 向上发展,而且这正在进行中,但更换提供商现在更为紧迫。
更新:
根据文档,可能的原因有:
标准输出重定向。这不可能,因为在设置 A 中没有发生这种情况。我还检查了启动脚本是否重定向了任何文件描述符。没有。
bash 提前终止。我已禁用 Phusion 的读取
.bashrc
等功能以避免出现这种情况服务器太忙。服务器是新服务器,尚未投入生产,并且由两个人测试。因此并不忙。
应用程序启动冻结,原因是循环或其他原因,或者从 NFS 或 S3 请求某些内容。应用程序未与 S3(或其他类似服务)通信,也未与 NFS 通信。如果这是无限循环的情况,我不得不怀疑为什么这种情况没有发生在当前生产设置(已使用 2 年以上)上。这两个设置都运行相同的代码库和相同的数据。
更新 2 - 更完整的日志消息
[ 2014-08-30 01:30:15.3001 10515/7f654de0b700 Pool2/Implementation.cpp:287 ]: 无法为应用程序 /workspace/app/app 生成进程:启动 Web 应用程序时发生错误:它没有及时写入启动响应。错误 ID:c8940e97 错误详细信息已保存到:/tmp/passenger-error-Z0k9GY.html 应用程序消息:启动 Web 应用程序时发生错误:它没有及时写入启动响应。请阅读本文以了解有关此问题的更多信息。
原始流程输出在这里(基本上是服务器设置的 html 输出)
[ 2014-08-30 01:30:15.3091 10515/7f654e84d700 agent/HelperAgent/RequestHandler.h:2306 ]: [客户端 27] 无法签出会话,因为发生了生成错误。错误的标识符为 c8940e97。有关错误的详细信息,请参阅早期日志。