powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
25 сообщений из 26, страница 1 из 2
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39544473
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в старом анекдоте про чукчу и вскрытие...
Анализ лог-файла real-time процесса показал, что причиной торможения и, как следствие неправильной работы, явилась запись в лог-файл.
Как это исправить, в общем, понятно, но раз уж все равно код переписывать, пришла в голову мысль - а может заодно и формат поменять?
Что нужно:
1. Точная хронология и хронометраж всех действий.
2. Запись неоднородной информации
3. Максимальная надежность работы.
4. Возможность автоматического анализа.
В текстовом файле, который сейчас используется, пп.1-3 выполняются, но с п. 4, понятное дело, все плохо - нужно писать кучу парсеров.
С СУБД, ввиду п. 2-3 в этом месте связываться боязно.
Может я чего-то не знаю, и человечество придумало еще какие-то варианты?
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39544944
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

угу. пишет в текстовый файл код ошибки и параметры в каких нибудь скобочках
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39544946
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglпишет в текстовый файл код ошибки и параметры в каких нибудь скобочках
или этот текст со скобочками в сеть отправляет

хотя отклонения бывают - логи Windows
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545246
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисКак в старом анекдоте про чукчу и вскрытие...
Анализ лог-файла real-time процесса показал, что причиной торможения и, как следствие неправильной работы, явилась запись в лог-файл.
Как это исправить, в общем, понятно, но раз уж все равно код переписывать, пришла в голову мысль - а может заодно и формат поменять?
Что нужно:
1. Точная хронология и хронометраж всех действий.
2. Запись неоднородной информации
3. Максимальная надежность работы.
4. Возможность автоматического анализа.
В текстовом файле, который сейчас используется, пп.1-3 выполняются, но с п. 4, понятное дело, все плохо - нужно писать кучу парсеров.
С СУБД, ввиду п. 2-3 в этом месте связываться боязно.
Может я чего-то не знаю, и человечество придумало еще какие-то варианты?
любая база данных имеет негарантированное время реакции, потому пункты 1 и 3 отпадают

а так вообще есть такая штука как syslog-ng. в нем можно настраивать 100500 разных приемников лог сообщений, хоть куда.
https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/chapter-destinations.html

это если примитив

не примитив - это область CEP https://en.wikipedia.org/wiki/Complex_event_processing
https://en.wikipedia.org/wiki/Complex_event_processing#Vendors_and_products

есть еще вот эти товарищи https://en.wikipedia.org/wiki/Reliable_multicast

короче, гугли на тему real time messaging
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545263
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисС СУБД, ввиду п. 2-3 в этом месте связываться боязно.
Совершенно непонятно, почему.

Соколинский Борис2. Запись неоднородной информации
Вот что там у вас за неоднородная информация такая, что запись её в БД может вызвать какие-то проблемы? это при том, что в текст всё пишется - то есть ничего хитромудрого в данных нет. Пишите как есть, сырцом, но в БД, в текстовое поле, и всё.

Соколинский Борис3. Максимальная надежность работы.
Современные СУБД достаточно надёжны. И в чём-то даже получше plain text будут.

dbpatchлюбая база данных имеет негарантированное время реакции, потому пункты 1 и 3 отпадают
Ну по поводу пункта 3 - так ведь и жёсткий диск не гарантирует real-time записи.
А по первому пункту - записываемая информация, если это действительно лог, обязана содержать в себе временнЫе метки (штамп времени, синтетический штамп или ещё что), устанавливающие порядок, и, значит, сортировка по этим меткам выстроит последовательность событий в правильном порядке, даже если они до сервера добрались перемешанными. А ориентироваться на физический порядок следования - это даже не смешно.

dbpatchа так вообще есть такая штука как syslog-ng
Ага, которая хранит логи на сервере БД. Только дополнительно организует ещё слой буферизации, чтобы чего не потерять. Но если товарищ логирует собственное приложение, так он и сам организовать такую буферизацию может, без привлечения сторонних средств. И процесс слива буфера на сервер БД - низкоприоритетный рядом с приложением или нормальный рядом с сервером БД.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545323
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПишите как есть, сырцом, но в БД, в текстовое поле, и всё. В этом случае теряется все преимущество БД по сравнению с текстовым файлом.

AkinaСовременные СУБД достаточно надёжны. И в чём-то даже получше plain text будут. В плане хранилища данных - возможно. Меня беспокоит исключительно механизм передачи. Если лодка перевернется программа упадет, намного больше шансов, что какая-то информация потеряется.
А для логов это совершенно недопустимо.
Кроме того, у меня многопоточное приложение и логи пишутся отовсюду. Не уверен, что найдется хорошее решение.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545329
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисВ текстовом файле, который сейчас используется, пп.1-3 выполняются, но с п. 4, понятное дело, все плохо - нужно писать кучу парсеров.
а плохго то что?
а почему кучу, а не один полнофункцинальный?

платформа какая и объём логирования?
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545373
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропила плохго то что?
а почему кучу, а не один полнофункцинальный?

Один полнофункциональный будет состоять из кучи неполнофункциональных :)
Информацию нужно анализировать в разных разрезах - на что идет время, как работают разные алгоритмы, и т.д.


Изопропил платформа какая и объём логирования? Винда XP - 10. Объем зависит от длительности работы и состава логгируемых операций. От 100К до 10М.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545376
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М.
байт(записей) в секунду сколько в пике?
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545378
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисВ этом случае теряется все преимущество БД по сравнению с текстовым файлом.
Не понял. Что теряется? Ничего не теряется. Просто у тебя должно быть ТРИ этапа.

1) Накопление данных
Данные складываются в БД как есть, без парсинга и преобразований. Задача этапа - сохранить данные максимально быстро и без потерь. Одноразово.

2) Предобработка, парсинг и формализация данных
Данные парсятся, параметры раскидываются по полям, а то и таблицам, конвертируются в необходимые типы, проводятся необходимые предобработки и предрасчёты. Одноразово, выполняется по завершении первого этапа.

3) Обработка и анализ
Получение необходимых результатов на основании обработанных данных. При необходимости - обращение к оригиналам. Сколько угодно раз.

Соколинский БорисМеня беспокоит исключительно механизм передачи. Если программа упадет, намного больше шансов, что какая-то информация потеряется.
Ну что за детский лепет? А если программа-логгер упадёт? вот только не говори, что невозможно - программа она программа и есть, упасть - только дай. Боишься за механизм передачи, сеть хреновая - значит, делай ещё локальную кэш-прослойку, которая примет логи, забуферит, и по мере возможности передаст на сервер. А лучше сеть переделать, разъёмы там перебить, хабы на коммутаторы поменять...

Соколинский Борису меня многопоточное приложение и логи пишутся отовсюду.
Тем более - кэширующий процесс, в фоне, когда время есть, сливающий логи на сервер, не будет лишним.
Сколько у тебя там суммарно логов в одном сеансе, ежели в гигабайтах мерить?
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545380
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М.Да ё моё! я думал, там гигабайты дикие... накапливай в памяти, а по завершении процесса всё сливай на лог-сервер в базу.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545409
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaНе понял. Что теряется? Ничего не теряется. Просто у тебя должно быть ТРИ этапа.
...
Тем более - кэширующий процесс, в фоне, когда время есть, сливающий логи на сервер, не будет лишним.
Мама дорогая...
Столько всего городить ради решения второстепенной задачи.

AkinaА если программа-логгер упадёт? вот только не говори, что невозможно - программа она программа и есть, упасть - только дай.
Как таковой программы-логгера пока нет, рабочая программа сама пишет. Упасть/зависнуть, конечно, может. И в этом свете совет хранить все в буфере, а сбрасывать в конце выглядит особо уместным.
Особенно, когда одна из задач записи лога - разобраться, почему программа падает/зависает.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545420
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилСоколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М.
байт(записей) в секунду сколько в пике? примерно 20К.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545421
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисУпасть/зависнуть, конечно, может. И в этом свете совет хранить все в буфере, а сбрасывать в конце выглядит особо уместным.
буфер может жить в разделяемой(shared) памяти . делов то
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545499
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилбуфер может жить в разделяемой(shared) памяти . делов то Может.
Только придется guard отдельный писать, который будет его сбрасывать если прога подвиснет.

В общем, от тормозов избавился путем создания отдельного потока записи лога. Вопрос с форматом пока открыт.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545551
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисКак таковой программы-логгера пока нет, рабочая программа сама пишет.Ну как я в общем-то и предполагал - сама программа и есть кроме всего прочего логгер.

Соколинский БорисСтолько всего городить ради решения второстепенной задачи.
Господи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить? и можно даже с шареной памятью не связываться, через локалхост оно пролетает со свистом, тем более в таких-то объёмах. А на старте пусть она сразу зарезервит себе памяти с избытком, скажем, метров 50, чтобы с выделением-освобождением не связываться.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545598
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaГосподи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить?

В смысле tcp-сервер сделать? Теоретически возможно, но когда критично время порядка нескольких мс., закладываться на оперативность сервиса черезчур оптимистично.
А если через upd, то хрен поймешь, жив он или мертв.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545609
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисА если через upd, то хрен поймешь, жив он или мертв.
есть PGM протокол.

PS такое ощущение, что система запуска баллистических ракет пишется
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39545613
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисВ смысле tcp-сервер сделать?Ну да, типа сервер... хотя один несчастный открытый сокет как-то на сервер не тянет, но пусть его.
Соколинский Борисно когда критично время порядка нескольких мсНа локалхосте, ага...
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39546876
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисAkinaГосподи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить?

В смысле tcp-сервер сделать? Теоретически возможно, но когда критично время порядка нескольких мс., закладываться на оперативность сервиса черезчур оптимистично.
А если через upd, то хрен поймешь, жив он или мертв.

Выводил как-то в сокет все события из EvenLog-а системы, так куда побольше будет, у меня "телнет-клиент" ещё и показывать их успевал и хайлайты вешать с 20% загрузкой проца. А просто сохранить в файл это куда быстрее.

PS: потеря пакетов на localhost это круто
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39546905
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),
О потере речь не идет, исключительно о времени передачи.
Условно - должно работать не 1-3 мс., а если больше 10 - то катастрофа.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39546943
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисkealon(Ruslan),
О потере речь не идет, исключительно о времени передачи.
Условно - должно работать не 1-3 мс., а если больше 10 - то катастрофа.
10 мс это много. На нормальном компе через localhost можно прогонять 150-200 Мб/сек, т.е. за 10 мс можно прокачать 1.5-2 Мб.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39546983
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Это много в смысле среднего значения. Но мало в смысле максимального.
Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше.
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39546996
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисЭто много в смысле среднего значения. Но мало в смысле максимального.
Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше.Э-э-э ... Вы забыли, как работает UDP?
...
Рейтинг: 0 / 0
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
    #39547142
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисDima T,
Это много в смысле среднего значения. Но мало в смысле максимального.
Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше.
Не понимаю в чем тут вообще проблема.
Это же лог, что страшного в том что запишется туда на 10 мс позже?
Я так понял у тебя проблема в тормозах из-за записи, эта проблема частично порешается если писать в TCP соединение, т.к. запись станет быстрее из-за того что отправка пойдет в параллельном потоке, т.е. твой рабочий поток будет тратить время только на подготовку содержимого записи.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]