2017-01-26 18 views
0

私は、RaspbianのRaspberry Pi 2でMonkを使ってNodeJSアプリでMongoDbを実行しています。Raspberry Pi 2のMongoDbパフォーマンス

正常に動作している間は、データベースへのアクセスは驚くほど遅くなります。

私は約170万のドキュメントを1つのテーブルに入れています。私は単純な値(タイムスタンプに従った最後のレコード)とそれほど複雑ではない(合計30の値)を呼び出します。アプリは毎秒2つの新しいエントリを書き込みます(間違いなく、一種のログです)。クライアントは、毎秒1〜3の値を要求します。

非常にシンプルなのは約8秒、少し複雑な20秒です。時間が経つと変化しません。 CPUは負荷があり、30〜75%は永久に、私はWiFi経由でクライアントを1つしか提供しません。

結果が返ってきたら、値は正しいです。

バージョン情報:

  • のMongoDB:v2.4.10
  • モンク:v3.1.3
  • ノード:V6.3.1
  • OS:Raspbian GNU/Linuxの8(ジェシー)
  • カーネル:raspberrypi 4.4.11.-v7 +

質問:

ラズベリー2では1mio以上の記録と1秒あたり2〜4回のリクエストで遅いことが知られていますか?それとも私ができることがありますか?

アプリはまったく素朴でまっすぐです。

+0

別の環境でプローブしますか? – ZiTAL

+0

"アプリはまったく素朴で、まっすぐです。"さて、あなたは完全にドキュメント構造とそれがどのように測定するか詳細な、あなたが実行する操作を提供することができます。 – Gimby

答えて

1

あなたは二つの重要な制約の世話をする必要がありますラズベリーPIでのパフォーマンスを見て:

  1. RAM:あなたのユースケースではモデル2にRAMの唯一の1ギガバイトを持っているかもしれないDBのインデックスがありますSDカードとRAMから改ページ。
  2. SD:通常のデスクトップPCのような完全なSataインターフェースを持っていません。 SDからの読み書きは、通常のHDよりもずっと遅いです。より高級なSDカードで試すことができます。

DB、クエリ、プログラムの詳細がなくても、正確な分析はできません。あなたができることは、 "トップ"または同様のコマンドを使用して、ディスクのRAM、CPU負荷、IOの使用状況を表示することです。

+0

ええと、topはmemがいっぱいで、少なくとも100 MBのスワップがあることを示しています。現在のdbを小さく保つために、高齢のデータをアーカイブするつもりです。それが役に立ったら、ここに結果を掲載するつもりです。ありがとう –

+0

Raspyのスワップは非常に遅いです。 RAMの使用量を減らすようにしてください。 –

+0

そうでした。より小さなフットプリントでより速くIndead。それが重要だということを認識していませんでした。ヒントをありがとう。 –