监控和预防系统限制 Erlang 系统中 Mnesia 崩溃
我们有许多云服务器,我正在构建一台新服务器来测试资源的提供。
我在我认为应该发生之前发生了致命的崩溃,因为某种系统资源即将耗尽。
=INFO REPORT==== 14-Feb-2010::12:40:14 ===
Setting up: "http://sub48.localhost:9000" as pirate
Mnesia('[email protected]'): 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('[email protected]'): ** 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}
操作系统是 Ubunut 8.04 (LTS),但我们的其他操作系统是 Ubuntu 9.04 和 Ubuntu 9.10 - 我认为我们必须对它们进行标准化:(
所以我的问题是:
- 我如何识别哪些资源正在耗尽?
- 哪些主动监控步骤可以我要确保这种情况不会再次发生?
- 一般来说,我可以用 Erlang VM 耗尽哪些系统资源,以及我应该为它们采取哪些监控步骤?
We have a number of cloud servers and I am building a new one to test provision of resources on.
I am getting a fatal crash way before I think I ought to, as some sort of system resource is running out.
=INFO REPORT==== 14-Feb-2010::12:40:14 ===
Setting up: "http://sub48.localhost:9000" as pirate
Mnesia('[email protected]'): 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('[email protected]'): ** 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}
The operating system is Ubunut 8.04 (LTS) but our other ones are Ubuntu 9.04 and Ubuntu 9.10 - I think we will have to standardise them :(
So my questions are:
- how can I identify what resource is running out?
- what proactive monitoring steps can I take to ensure that it doesn't happen again?
- which system resources, in general, might I be able to exhaust with an Erlang VM, and what monitoring steps I should have in place for them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一个名为 os_mon 的 erlang 模块,它可以让你监视各种资源,例如 CPU 负载。另请查看sasl OTP应用程序,特别是overload和alarm_handler。
There is an erlang module called os_mon which let's you monitor various resources like cpu load. Also check out the sasl OTP application, especially overload and alarm_handler.