我们正在尝试将从云提供商A编写的REE应用程序迁移到云提供商B.应用程序代码,VM规格和操作系统是相同的。 基本的区别在于云提供商A使用Xen和半虚拟化,而云提供商B使用KVM和完全虚拟化。 哦,是的, ulimit -a在两个设置上是相似的。
然而,在云供应商B,我们经常遇到这样的错误:
来自应用程序的消息:启动Web应用程序时发生错误:它没有及时写入启动响应。 请阅读这篇文章 ,了解更多关于这个问题的信息
提供程序A上的安装具有实际负载,从来没有这种错误。 提供者B上的安装程序像一个用户在18%的时间内这样崩溃。
我已经阅读了文档,但是它的解决scheme似乎并不适用于我们的案例(由于连接到Postgres,我们直接产卵而不聪明),或者如果他们这样做,我希望这里的人们可以指出。
是的,我知道更好的方法是从REE向上移动,这是在做的,但改变供应商现在更加紧迫。
更新:
根据文件可能的原因是:
标准输出redirect。 这不可能是在设置A的情况下,它不会发生。 我也检查启动脚本是否redirect任何文件描述符。 它不是。
提前终止在bash中。 为了避免这种情况,我已经从阅读.bashrc之类的文件中禁用了Phusion
服务器太忙。 服务器是新的,不在生产和两个人testing。 所以它不是很忙。
应用程序启动冻结,因为一个循环或某事或从NFS或S3请求的东西。 应用程序不是与S3(或其他类似的服务)交谈,而不是与NFS交谈。 如果这是一个无限循环的情况下,我不得不想知道为什么这不会发生在当前的生产设置(2年以上)。 两个设置都使用相同的数据运行相同的代码库。
更新2 – 更完整的日志消息
[2014-08-30 01:30:15.3001 10515 / 7f654de0b700 Pool2 / Implementation.cpp:287]:无法为application / workspace / app / app产生进程:启动web应用程序时发生错误:没有写入启动响应及时。 错误ID:c8940e97将错误详细信息保存到:/tmp/passenger-error-Z0k9GY.html应用程序消息:启动Web应用程序时发生错误:它没有及时写入启动响应。 请阅读这篇文章以获得更多关于这个问题的信息。
这里的原始进程输出(基本上服务器设置的html输出)
[2014-08-30 01:30:15.3091 10515 / 7f654e84d700代理/ HelperAgent / RequestHandler.h:2306]:[Client 27]由于发生产卵错误,无法检出会话。 错误的标识符是c8940e97。 有关错误的详细信息,请参阅前面的日志。