2016-03-26 17 views
1

私は、128MBのRAMを持つ安価なVPSホストを見つけることができます。それは、最初にテスト用の小さなデータベース用のクレートノードを実行するのに十分なのだろうかと思います。 (私はを探していないよメモリを推奨しますが、メモリ不足の例外に実行していないため、1最小。クレートはノードの唯一のサービスであると考えられる。)Crate - ノードホストの最小メモリ要件はいくらですか?

+0

どのような種類のクエリを実行できると思われますか?また、いくつのレコードが必要ですか?明らかに、メモリが少ないほど、応答が処理できるデータが少なくなります。 – Christian

+0

~10000のそれぞれ〜10Kbのレコード。ピーク時には10回の書き込み/分と100回の読み取り/分を処理する必要があります。列の値、配列要素、およびフルテキスト列の単純な照会(結合なし)。 –

+0

各読み取りは、それぞれ最大10MBの100レコードを必要とします(合計最大1MB /読み取り)。各書き込みでは、1つのレコードしか保存されません。 –

答えて

2

このような環境でCrateを実行することは可能です。しかし、私はそれをお勧めしません。いずれにせよ、あなたは、いくつかの予防策を講じる必要があります。

  1. は実際にブーツリーンのLinuxディストリビューションを選択して、このような小さなメモリフットプリントで実行されます。アルパインは1つの選択肢かもしれません。
  2. Javaをインストールします。あなたは少なくともopenjdk7(55以上のアップデート)が必要です。
  3. CrateのWebサイトで説明されているように、tarballからCrateをインストールして起動してください。アルパイン3.3の上に128 MBのRAMを搭載した仮想マシンで

、私はディスク上の(あなたが/etc/apk/repositoriesコミュニティリポジトリを有効にする必要があります)openjdk8-jreをインストールしました。私はCrate 0.54.7のtarballをダウンロードし、それを解凍しました。私はCRATE_HEAP_SIZE=64mと設定しています。これは、利用可能なメモリの半分を推奨しているためです。 (

head -c7380 /dev/urandom | uuencode - | grep ^M | tr -d '\n\047' 

これには数分かかりました:

は、私はテーブルの「デモ」

DROP TABLE IF EXISTS demo; 
CREATE TABLE demo (
    data string 
); 

を作成し、遅いbashスクリプトで各10キロバイトのランダムな文字列の10,000レコードでそれを埋め約20レコード/秒)ですが、一括挿入の場合はの方法が速くてほんの数秒かかるはずです。

管理UIによって報告された正味データ量は約100 MBで、ディスク上に287 MBのグロスが必要でした。

オペレーティングシステム、インストールされたソフトウェア、およびデータ全体がディスク上に820 MBを要求しました。

私は(データなしクレートプロセス自体を約40メガバイトを占める)スワップ空間としてメモリの倍の量を設定し、以下のフットプリントを得た:

# free 
      total  used  free  shared buffers  cached 
Mem:  120472  117572  2900   0  652  6676 
-/+ buffers/cache:  110244  10228 
Swap:  240636  131496  109140 

すべての10,000レコード(SELECT count(*) FROM demo WHERE data LIKE '%ABC%')以上の全文検索がかかりました約1.9秒。

要約:はい、可能ですが、実際にそうすると多くの機能が失われます。結果は、実際に実行するクエリの種類に大きく依存します。

1

私はちょうど演奏あなたはHEAPのサイズをどれくらい減らすことができるのか少し分かります。64MBヒープ(128MBメモリ)は、あなたのユースケースでうまくいくかもしれません。

はあなたが正しくCRATE_HEAP_SIZEdocs)環境変数を使用してヒープサイズを設定しても、メモリを交換していないJVMにbootstrap.mlockall: truedocs)設定を確認してください。

しかし、少なくとも256MB HEAP(512MBメモリ)をお勧めします。