Мониторинг и предотвращение системных предельных сбоев при Mnesia в системе Erlang - PullRequest
4 голосов
/ 14 февраля 2010

У нас есть несколько облачных серверов, и я строю новый, чтобы проверить предоставление ресурсов.

Я получаю смертельный сбой прежде, чем думаю, что должен, так как какой-то системный ресурс истощается.

=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}

Операционная система - Ubunut 8.04 (LTS), но другие наши - Ubuntu 9.04 и Ubuntu 9.10 - я думаю, нам придется стандартизировать их:

Итак, мои вопросы:

  • как определить, какой ресурс заканчивается?
  • какие активные действия по мониторингу я могу предпринять, чтобы это больше не повторилось?
  • Какие системные ресурсы, в общем, я мог бы использовать на виртуальной машине Erlang, и какие шаги по мониторингу я должен был выполнить для них?

1 Ответ

1 голос
/ 18 февраля 2010

Существует модуль erlang под названием os_mon , который позволяет вам отслеживать различные ресурсы, такие как загрузка процессора. Также ознакомьтесь с приложением sasl OTP, особенно с перегрузкой и alarm_handler.

...