mongodb - OpenShift 上超出磁盘配额

标签 mongodb openshift

我刚刚将应用程序部署到 OpenShift,并且运行良好,直到我想要推送更改。然后它开始警告我超出磁盘配额,并且我无法再执行任何操作。

从终端运行 rhc app-tidy [app-name] 给了我这个:

Warning: Gear 5395736e5004467cae0004ba is using 100.0% of disk quota
Failed to execute: 'control start' for /var/lib/openshift/5395736e5004467cae0004ba/nodejs

app-root/logs 文件夹为空。

运行du -h * |排序-rh | head -50,给我这个:

481M    mongodb/data
481M    mongodb
385M    mongodb/data/journal
275M    app-root/runtime
275M    app-root
267M    app-deployments/2014-06-09_04-51-12.537
267M    app-deployments
157M    app-root/runtime/repo
156M    app-deployments/2014-06-09_04-51-12.537/repo
125M    app-root/runtime/repo/node_modules
125M    app-deployments/2014-06-09_04-51-12.537/repo/node_modules
119M    app-root/runtime/dependencies/.npm
119M    app-root/runtime/dependencies
111M    app-deployments/2014-06-09_04-51-12.537/dependencies/.npm
111M    app-deployments/2014-06-09_04-51-12.537/dependencies

不知道为什么 mongodb/data 占用这么多空间以及到底有什么?我的数据库应该是空的。

** 更新 **

在我的 mongodb/data 文件夹上运行后,这是我得到的:

total 97M
drwxr-xr-x.  3 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 05:21 .
drwxr-xr-x. 11 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 04:44 ..
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 admin.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 admin.ns
drwxr-xr-x.  2 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 06:51 journal
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 06:51 local.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 06:51 local.ns
-rwxr-xr-x.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba    0 Jun  9 06:51 mongod.lock
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 surge.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 surge.ns

最佳答案

对我也有帮助的是禁用 journaling

列出完整的步骤

  1. 通过 SSH 连接到 OpenShift

    rhc ssh $@ -a $app
    
  2. 在 MongoDB 配置中

    vim ~/mongodb/conf/mongodb.conf
    

    添加或设置

    nojournal = true
    

注:~自动解析为 /var/lib/openshift/<YOUR_OPENSHIFT_ID>

  • 删除以前的日志数据

    rm ~/mongodb/data/journal/*
    
  • 然后退出 SSH,并且

  • 重启 MongoDB

    rhc cartridge-restart mongodb-2.4 -a $app
    
  • 这当然是以不记录日志为代价的,这对 recovering the data in case of corruption or unclean shutdown 有帮助。 。但是,如果您只是进行测试并且空间不足,那么禁用日记功能会非常有帮助,因为它会占用大量空间。

    关于mongodb - OpenShift 上超出磁盘配额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119096/

    相关文章:

    kubernetes - 有没有一种方法可以加快水平Pod自动缩放器指标的扫描速度?现在,升级新 pods 需要两分钟

    java - 尽管没有重叠,但 Mongo DuplicateKey 错误

    javascript - mongodb/mongoose 中的保存方法

    openshift - 在 Windows 8 上保存 OpenShift rhc 快照时出现 "No system SSH available"错误

    openshift - OpenShift Origin 的局限性

    kubernetes - Horizo​​ntal Pod Autoscaler 中 API 版本 v2beta1 和 v2beta2 之间的区别?

    传感器数据的 mongodb 结构

    javascript - require 在 node.js 中的行为

    javascript - Nodejs 将值从一个模块传递到另一个模块

    security - 固定Docker套接字的选项