Я знаю, это звучит странно, но мне нужна более медленная или кешированная файловая система.
У меня есть много брандмауэров, которые записывают свои данные в системный журнал на пару виртуальных машин Linux, которые записывают эти файлы на свои «локальные» (фактически подключенные FC SAN) диски в формате ext3, а также пересылают сообщения на наши серверы Splunk.
Проблема в том, что сервер системного журнала записывает эти сообщения системного журнала в виде сотен, а иногда и тысяч крошечных записей ~ 4 КБ в секунду обратно в нашу FC SAN, которая может справиться с этой рабочей нагрузкой прямо сейчас, но наш FW-трафик будет расти как минимум на фактор 5000% (действительно) в ближайшие месяцы, и это будет проблемой для SAN, я хочу исправить основную причину, прежде чем она станет проблемой.
Поэтому мне нужна помощь в выяснении способа кэширования или задержки этих записей каким-либо образом с `` физических '' дисков, чтобы виртуальные машины запускали более крупные, но менее частые записи - нет способа избежать этих записей, но есть нет необходимости делать так много крошечных.
Я просмотрел различные параметры ext3, установив noatime и nodiratime, но это не сильно повлияло на проблему. Очевидно, я исследую другие файловые системы, но подумал, что выброшу это на случай, если у других возникнет такая же проблема в будущем.
Да, и я не могу просто переслать эти сообщения в Splunk, наша команда брандмауэра настаивает, что они в исходном формате для целей диагностики.
Файловая система: отключите барьеры записи, если ваши устройства их используют, и отключите временные обновления по всем направлениям.
Но есть вероятность, что вы также можете настроить свой системный журнал за счет большей потери данных в случае сбоя (питание и т. Д.).
Пример директив из syslog-ng
(что может быть не тем, что вы используете):
flush_lines()
Указывает, сколько строк сбрасывается до места назначения за раз. Syslog-ng ожидает накопления этого количества строк и отправляет их одним пакетом.
flush_timeout()
Задает время, в течение которого syslog-ng ожидает накопления строк в своем буфере вывода. Смотрите опцию flush_lines для получения дополнительной информации.
В данном случае местом назначения является файл на диске.
Возможно commit
Вам поможет опция монтирования ext3? Например, commit=60
будет сбрасывать все данные и метаданные только один раз в минуту.
Обязательное предупреждение: это может привести к потере данных на срок до одной минуты (если вы передадите значение commit = 60).