1

我是 linux 和服务器管理领域的新手,我被困住了。

我有一个 Rails 应用程序,它偶尔需要执行大数据插入,通常大约 20,000 行。该代码似乎在开发(osx)中运行良好,但在生产服务器(ubunto,linode vps)上,它每次都失败,通常在大约 1,700 次插入之后。确切的数字各不相同(1655、1697、1756),但始终如一。

我在 production.log 文件中没有看到太多有用的信息。只是:

Connecting to database specified by database.yml

失败后一秒钟左右。

在 postgresql 主日志中:

2012-10-21 23:01:28 EDT LOG:  could not receive data from client: Connection reset by peer
2012-10-21 23:01:28 EDT LOG:  unexpected EOF on client connection

我正在运行 Rails 3.2.8、ruby 1.9.3-p194、psql 1.9.4、nginx、独角兽

真正遵循以下部署步骤: http ://railscasts.com/episodes/335-deploying-to-a-vps

其他注意事项:

a) 我已经尝试在事务中包装而不是包装 ActiveRecord 插入。没有区别。

b) Ruby 在插入数据库之前做了大量工作来收集和组织数据。这包括对第三方 Web 服务的多次调用。但是我已经确认这些通信是成功的,并且数据看起来很好。

有任何想法吗?或者至少有什么关于我可以在哪里继续调查的建议?非常感谢,

4

1 回答 1

1

这个故事的寓意是:“当有疑问时,责怪独角兽。”

(独角兽设置为在 30 秒后超时工作进程。)

于 2012-10-23T21:19:21.670 回答