私はWebSocketとノードサーバーを使ってオンラインブラウザゲームを作っています.20-30人くらいのプレイヤーがいれば、CPUは通常約2%、RAMは10-15%です。私はちょうどそれをホストするために安価なデジタルオーシャン小滴を使用しています。ノードサーバーがランダムに100%にスパイクし、クラッシュします。どのように診断するのですか?
しかし、20〜30分ごとにサーバーのCPU使用率が10秒間に100%にスパイクしてから最終的にクラッシュするようです。その瞬間まで、CPUは通常2%前後でホバリングし、ゲームは非常にスムーズに実行されています。
ログにエラーがなく、私が見ることができるゲームで何も起こらないので、私はこのことを引き起こしていることを私に伝えることはできません。ちょうどサーバーをダウンさせるランダムなイベントのようです。
また、サーバーを停止させることはありませんが、すぐに解決するスパイクもあります。ここでは画像です:
私はどこにでもイベントループを遮断してるとは思わないと私は長い間実行されているように見える任意の実行パスを持っていません。サーバーとの間のパケットは、通常、ユーザーあたり1秒あたり2つです。したがって、帯域幅はまったく使用されません。また、サーバーはほとんどの場合、検証以外のパケットの処理をほとんど行わないリレーなので、どのようなコードパスが非常に集中的であるかわかりません。
私はこれをプロファイルし、これらのスパイクの原因を調査する方法をどこから見つけるべきですか?私は忘れてしまったいくつかのコードパスがあると思っています。負荷がかかっているうちに驚くほど遅くなっているか、それを解決するノードフラグがないかもしれませんが、わかりません。
これはhttp://techblog.netflix.com/2014/11/nodejs-in-flames.htmlにチェックされていますか?またはこれはhttp://stackoverflow.com/questions/13375735/node-js-cpu-100/13376256#13376256?あなたは、負荷がノードのプロセスからトップなどを介していることを確認できますか? –
@ mh-cbon:topはノードのアプリからすべてだったことを確認しました –
あなたはニューレルティックを見たことがありますか? 5月も助けます。 –