代码之家  ›  专栏  ›  技术社区  ›  Gordon Guthrie

erlang系统中mnesia系统极限崩溃的监测与预防

  •  4
  • Gordon Guthrie  · 技术社区  · 14 年前

    我们有许多云服务器,我正在构建一个新的云服务器来测试资源的提供。

    由于某种系统资源正在耗尽,在我认为应该之前,我已经遇到了致命的崩溃。

    =INFO REPORT==== 14-Feb-2010::12:40:14 ===
    Setting up: "http://sub48.localhost:9000" as pirate
    Mnesia('ares@example.com'): Data may be missing, 
    Corrupt logfile deleted: "(...)/sub48.localhost&9000&styles.DCL", {file_error,
    "(...)/sub48.localhost&9000&styles.DCL", system_limit} 
    
    
    =ERROR REPORT==== 14-Feb-2010::12:40:18 ===
    Mnesia('ares@example.com'): ** ERROR ** (could not write core file: system_limit)
     ** FATAL ** Cannot open log file "(...)/sub48.localhost&9000&styles.DCL": 
    {file_error, "(...)/sub48.localhost&9000&styles.DCL", system_limit}
    

    操作系统是Ubunut8.04(LTS),但我们的其他系统是Ubuntu9.04和Ubuntu9.10-我想我们必须将它们标准化:(

    所以我的问题是:

    • 如何确定哪些资源正在耗尽?
    • 我可以采取哪些主动监视步骤来确保不再发生这种情况?
    • 一般来说,我可以使用erlang vm耗尽哪些系统资源,应该为它们设置哪些监视步骤?
    1 回复  |  直到 14 年前
        1
  •  1
  •   snies    14 年前

    有一个称为 os_mon 让我们监视各种资源,比如cpu负载。还可以查看 sasl OTP应用,特别是过载和报警处理器。