Crate - 节点主机的最低内存要求是多少?

时间:2016-03-26 08:44:34

标签: database out-of-memory low-memory crate

我可以找到具有128MB RAM的廉价VPS主机,我想知道这是否足以为一个小型数据库运行一个crate节点,最初用于测试。 (我不是在寻找推荐的内存,而是最小内存,因为没有遇到内存不足的异常.Crate应该是唯一的服务在节点中。)

2 个答案:

答案 0 :(得分:2)

可以在这样的环境中运行Crate。不过,我不推荐它。无论如何,您需要采取一些预防措施:

  1. 选择一个精简的Linux发行版,它实际上会以如此小的内存占用而启动和运行。阿尔卑斯山可能是一种选择。
  2. 安装Java。您至少需要openjdk7(更新55及更高版本)。
  3. 按照Crate网站上的说明从tarball安装并启动Crate。
  4. 在Alpine 3.3顶部具有128 MB RAM的虚拟机上,我在磁盘上安装了openjdk8-jre(您必须在/etc/apk/repositories中启用社区存储库)。我下载了Crate 0.54.7 tarball并将其解压缩。我设置CRATE_HEAP_SIZE=64m,因为这是可用内存的推荐一半。

    我创建了一个表" demo"

    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。

    我配置了两倍的内存量作为交换空间并获得了以下足迹(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秒。

    总结:是的,它是可能的,但是如果你真的这样做了,你会丢失很多功能。您的结果将在很大程度上取决于您实际运行的查询类型。

答案 1 :(得分:1)

我只是玩了一下你可以将HEAP大小减少到多少,看起来64MB堆(128MB内存)可以用于你的用例。

确保使用CRATE_HEAP_SIZEdocs)环境变量正确设置HEAP大小,并将bootstrap.mlockall: truedocs)设置为JVM不交换内存。

但是,我建议至少256MB HEAP(512MB记忆)。