1

128MB の RAM を搭載した安価な VPS ホストを見つけることができます。最初はテスト用に、小さなデータベース用のクレート ノードを実行するのに十分かどうか疑問に思います。(推奨メモリを探しているわけではありませんが、メモリ不足の例外が発生しないようにするための最小メモリを探しています。クレートは、ノード内の唯一のサービスであると想定されています。)

4

2 に答える 2

3

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

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

Alpine 3.3 上に 128 MB の RAM を搭載した仮想マシンに、ディスクにインストールopenjdk8-jreしました (コミュニティ リポジトリを有効にする必要があります/etc/apk/repositories)。Crate 0.54.7 tarball をダウンロードして解凍しました。CRATE_HEAP_SIZE=64mこれが使用可能なメモリの推奨される半分であるように設定しました。

テーブル「デモ」を作成しました

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

10 KB のランダムな文字列の 10,000 レコードでそれぞれが遅い bash スクリプトでいっぱいになりました。

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

これには数分 (約 20 レコード/秒) かかりましたが、一括挿入を使用すると、はるかに高速になり、数秒しかかかりません

データの正味量は約 100 MB であり、管理 UI によって報告されたように、ディスク上で合計 287 MB を使用しました。

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

スワップスペースとして 2 倍の量のメモリを構成し、次のフットプリントを得ました (データのない Crate プロセス自体は約 40 MB を占めます)。

# 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 秒かかりました。

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

于 2016-03-31T13:07:04.417 に答える