Zenoss - проблемы с производительностью захваченных событий
Эта проблема
Я вручную вставляю события в Zenoss через zensendevent
инструмент командной строки. События успешно вставлены в Zenoss. Проблема в том, что я могу просто вставить около 8 событий в секунду.
Я также экспериментировал со вставкой событий через zensyslog. Хотя zensyslog получает события системного журнала немедленно (я могу видеть их с tail -f $ZENHOME/log/origsyslog.log
), события затем разжевываются и вставляются в Zenoss асинхронно примерно с той же скоростью (8 в секунду).
Я не выполнил много настроек производительности для Zenoss или MySQL, кроме увеличения некоторых настроек кеша для Zope и MySQL (как показано здесь).
У меня нормальная пропускная способность? Что я могу сделать, чтобы резко увеличить количество вставляемых событий в секунду (мне нужно иметь возможность вставлять не менее 100 в секунду). Из того, что я видел в zensendevent
код, похоже, использует XML-RPC интерфейс Zenoss для вставки событий.
Наши технические характеристики машины и программного обеспечения следующие:
- Процессор Intel® Core ™ 2 Duo E7500 с частотой 2,93 ГГц
- 4 ГБ ОЗУ
- Ubuntu Server 10.04.2 LTS
- Zenoss 3.1.0 скомпилирован из исходного кода
- Это выделенная физическая установка, а не виртуальная машина
Некоторый контекст, если это помогает:
Мы хотим использовать Zenoss для мониторинга наших машин и программного обеспечения, которое они запускают. Наши машины часто не доступны напрямую с центрального сервера, на котором должен работать Zenoss. Однако мы можем получить данные, которые мы хотим, с любой машины на центральный сервер. Прямо сейчас мы генерируем около 1,5 миллиона событий в день, что дает в среднем около 17 событий в секунду, которые необходимо вставить в Zenoss.
Я использую следующий скрипт bash для тестирования производительности вставки событий через zensendevent (160 событий занимает около 20 секунд для вставки):
#!/bin/bash
for a in {1..160}
do
zensendevent -d 'somemachinename' -y 'some_event_key' -p 'some_component' -s Error -c /App "Example Test message"
done
Заранее большое спасибо.
1 ответ
Как ответили здесь, проблема была в том, как я выполнял свои тесты. В основном я бегал zensendevent
в цикле вместо простого выполнения запроса XML-RPC в цикле. Запуск скрипта на python был самым большим узким местом. Теперь я могу вставить с той же конфигурацией около 120 событий в секунду.