我在windows环境下对MongoDB做了一个简单的测试。具有 ID (int32) 和 Buffer (byte[4096]) 的单个对象集合按顺序填充。在达到近 15G(总共 16G)RAM 后,环境出现故障。一些应用程序被杀死,桌面更改其分辨率,然后完全挂起。硬重启后,我在 mongo 日志中发现了很多这样的记录:
VirtualProtect failed (mcw) e:/Databases/+MongoDB/TestFS/TestFS.7 256400000000 4000000 errno:1455 分页文件太小,无法完成此操作。
MapViewOfFile 失败 e:/Databases/+MongoDB/TestFS/TestFS.26 errno:1450 系统资源不足,无法完成请求的服务。
此外,MongoDB 无法再连接(连接到任何数据库)。日记功能已启用。日志中没有任何错误。我只能通过删除日志和损坏的数据库来修复它。这与我希望在生产中看到的行为相去甚远,但我知道,存在大量的生产安装。所以我试图理解,我错过了什么或做错了什么。
我的任务是将 QEMU 图像存储在数据库中,并考虑开发自定义块设备。这是一个好主意吗?从哪里开始比较好?