我可以找到具有 128MB RAM 的廉价 VPS 主机,我想知道这是否足以为小型数据库运行 crate 节点,最初用于测试。 (我不是在寻找推荐内存,而是最小内存,因为它不会遇到内存不足的异常。Crate 应该是节点。)
最佳答案
可以在这样的环境中运行 Crate。不过,我不推荐它。在任何情况下,您都需要采取一些预防措施:
- 选择一个精简的 Linux 发行版,它实际启动和运行时占用的内存非常小。 Alpine 可能是一个选择。
- 安装 Java。您至少需要 openjdk7(更新 55 及更高版本)。
- 按照 Crate 网站上的说明从 tarball 安装并启动 Crate。
在 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 条记录/秒),但是对于批量插入,它应该方式更快并且只需要几秒钟。
根据管理 UI 的报告,净数据量约为 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 秒。
总结:是的,这是可能的,但如果你真的这样做,你会失去很多功能。您的结果将在很大程度上取决于您实际运行的查询类型。
关于database - Crate - 节点主机的最低内存要求是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233338/