我是Linux和服务器管理领域的新品牌,我被卡住了。
我有一个rails应用程序偶尔需要执行大量数据插入,通常大约20,000行。代码似乎在开发(osx)中运行良好,但在生产服务器(ubunto,在linode vps上),它每次都失败,通常在大约1,700次插入之后。确切的数字会有所不同(1655,1677,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,unicorn
真正遵循以下部署的部署步骤: http://railscasts.com/episodes/335-deploying-to-a-vps
其他说明:
a)我尝试过包装,而不是在事务中包装ActiveRecord插入。没有区别。
b)在插入数据库之前,Ruby正在做很多工作来收集和组织数据。这包括对第三方Web服务的多次调用。但我已经确认这些通信是成功的,数据看起来还不错。有什么想法吗?或者至少有关于我可以继续侦察的建议吗?非常感谢,
答案 0 :(得分:1)
故事的寓意是:“当有疑问时,责备独角兽。”
(Unicorn设置为在30秒后超时工作进程。)