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