1

私は、Linux とサーバー管理の世界ではまったくの初心者で、行き詰まっています。

通常は約 20,000 行の大規模なデータ挿入を実行する必要がある Rails アプリがあります。コードは開発 (osx) では正常に動作するようですが、本番サーバー (ubunto、linode vps) では、通常約 1,700 回の挿入後に毎回失敗します。正確な数はさまざまですが (1655、1697、1756)、一貫してその範囲内にあります。

production.log ファイルに役立つ情報はあまり見当たりません。ただ:

Connecting to database specified by database.yml

失敗してから1秒ほど。

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 サービスへの複数の呼び出しが含まれます。しかし、これらの通信は成功していることを確認しており、データは問題ないようです。

何か案は?または、少なくともどこで調査を続けることができるかについての提案はありますか? 本当にありがとう、

4

1 に答える 1

1

この話の教訓は、「疑わしいときはユニコーンのせいにする」です。

(Unicorn は 30 秒後にワーカー プロセスをタイムアウトするように設定されていました。)

于 2012-10-23T21:19:21.670 に答える