データベース接続 (app.js で一時的に記述)
リーリー質問:
1. データをバッチで挿入すると、しばらくしてから表示されます:
MongoError: xxx.xxx.xxx への接続 95 がタイムアウトしました
2. 上記のエラーが発生すると、関連するデータベース操作がすべて実行されなくなります。プログラムとデータベース間の接続が切断されていますか? データベースの接続設定が間違っているのでしょうか、それともデータベースに問題があるのでしょうか?
3. 高同時実行の ab テストを実行すると、上記 2 つの現象も発生します。原因は何ですか?コネクションプール関連の設定が間違っていませんか?
まず、接続プールの問題に注意する必要があります。
mongoose.connect
は、繰り返し呼び出された場合、接続が継続的にオープンおよびクローズされるため、返されるオブジェクトは一度だけ呼び出す必要があります。パフォーマンスに大きく影響します。確認したら、どの程度の負荷をかけているか、利用可能なリソースをすべて占有しているかどうかを確認する必要があります。mongodb ログを見て、同時に開いている接続の数を確認できます。マシンの残りのリソースを確認することもできます。