Вход через провод? - PullRequest
1 голос
/ 27 ноября 2008

У нас есть случаи, когда мы записываем множество файлов журнала на хост, увеличивая количество операций ввода-вывода на хосте. Есть ли какие-нибудь хорошие открытые журналы для проводных решений.

Язык приложений - C ++ в Red Hat Linux 3.

Ответы [ 6 ]

3 голосов
/ 28 ноября 2008

Очень простой вариант ведения журнала - использовать syslog и полагаться (после правильной настройки) на демон syslog для пересылки его на удаленный сервер.

Взгляните на:

openlog()

syslog()

closelog()

и

syslog.conf

1 голос
/ 27 ноября 2008

Для C ++ в Boost еще нет библиотеки для ведения журнала. Но вы можете использовать самого продвинутого кандидата, написанного Джоном Торджо, здесь .

Он позволяет отфильтровывать некоторые из ваших журналов (вам, вероятно, это нужно, если журналирование настолько важно, что это становится проблемой производительности), и устанавливать различные пункты назначения, например поток.

1 голос
/ 27 ноября 2008

Первый набор вопросов:

  • Вам нужны все эти файлы журнала?
  • Все время?
  • Можете ли вы контролировать, сколько регистрации происходит?
  • Почему бы и нет?

Второй набор вопросов:

  • Почему ваши операции записи в журнал медленные?
  • Используете ли вы недопустимые операции (например, O_SYNC или связанные параметры в POSIX)?
  • Сколько дисков у вас есть?
  • Можете ли вы выиграть, имея разные файлы журналов на разных дисках (или, по крайней мере, располагая файлы журналов на другом диске, где хранятся другие файлы)?

Как говорит @igalse, есть доступные библиотеки журналов. Для C ++ вы должны взглянуть на то, что доступно в Boost , но, несомненно, есть и другие источники.

1 голос
/ 27 ноября 2008

Существуют библиотеки журналов, которые могут вам помочь. в зависимости от языка вашего приложения. Но если проблема с вводом / выводом, вероятно, пропускная способность сети - большая проблема.

0 голосов
/ 30 ноября 2008

Если на ввод / вывод на хосте влияют без необходимости, то, по моему мнению, вы либо:

  • Слишком много журналирования в FAR - журналирование, достаточное для достижения скорости записи ввода-вывода на постоянной основе, вероятно, слишком много, поскольку даже самое скромное оборудование может без проблем выполнять несколько мегабайт в секунду
  • Слишком много сбросов логов - это более вероятно. Syslogd по умолчанию сбрасывает журнал (слишком много для приложений, интенсивно использующих журнал) - это так, чтобы файлы журнала были надежными в случае сбоя, - но генерирует много операций ввода-вывода. Syslogd может быть перенастроен для каждого файла отдельно (см. Его справочную страницу), чтобы не удалять файлы так часто.

Регистрация на сетевом сервере не решит эти проблемы, если возникнет та же проблема - на самом деле, это ухудшит ситуацию, если несколько хостов будут регистрироваться на одном сервере.

0 голосов
/ 27 ноября 2008

Язык приложений - C ++ в Red Hat Linux 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...