2016-03-26 76 views
1

我可以找到128MB RAM的便宜VPS主機,我想知道這是否足以運行一個小型數據庫的環境節點,最初是爲了測試。 (我不是在尋找推薦內存,但是最低之一,沒有運行到內存不足的例外木板條被認爲是在節點的唯一服務。)箱子 - 節點主機的最低內存要求是多少?

+0

您希望能夠運行哪種查詢 - 您希望有多少條記錄?顯然,內存越少,響應可以處理的數據越少。每個〜10Kb的 – Christian

+0

〜10000條記錄;在高峯時,它必須能夠處理10次寫入/分鐘和100次讀取/分鐘。對列的值,數組元素和一個全文列進行簡單查詢(無連接)。 –

+0

每次讀取必須帶來最多100個10Kb的記錄(總計最大1MB /讀取)。每次寫入只保存一條記錄。 –

回答

2

可以在這樣的環境中運行箱子。但我不會推薦它。無論如何,你需要採取一些預防措施:

  1. 選擇一個精簡的Linux發行版,實際上引導和運行這樣一個小內存足跡。高山可能是一種選擇。
  2. 安裝Java。你至少需要openjdk7(更新55以上)。
  3. 按照Crate網站上的說明從tarball安裝並啓動Crate。

在與高山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,000條記錄的10 KB隨機字符串每一個緩慢的bash腳本:

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

這花了幾分鐘(約20條記錄/秒),但有了批量插入,它應該是方式更快,只需要幾秒鐘。

淨數據量大約爲100 MB,管理用戶界面報告的磁盤佔用總量287 MB。

操作系統,安裝的軟件和數據共佔用磁盤上的820 MB。

我配置的內存交換空間的兩倍,並得到了下面的足跡(箱子過程本身沒有數據佔用約40 MB):

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

在全部10000個記錄:A全文搜索(SELECT count(*) FROM demo WHERE data LIKE '%ABC%')拿約1.9秒。

摘要:是的,這是可能的,但如果你真的這樣做,你會失去很多功能。你的結果很大程度上取決於你實際運行的查詢類型。

1

我只是打你可以減少多少HEAP大小,看起來像64MB堆(128MB內存)可以解決你的用例。

確保你正確設置使用CRATE_HEAP_SIZEdocs)環境變量堆的大小,也可以設置bootstrap.mlockall: truedocs)到JVM不交換內存。

但是,我會推薦至少256MB HEAP(512MB內存)。