Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Как в старом анекдоте про чукчу и вскрытие... Анализ лог-файла real-time процесса показал, что причиной торможения и, как следствие неправильной работы, явилась запись в лог-файл. Как это исправить, в общем, понятно, но раз уж все равно код переписывать, пришла в голову мысль - а может заодно и формат поменять? Что нужно: 1. Точная хронология и хронометраж всех действий. 2. Запись неоднородной информации 3. Максимальная надежность работы. 4. Возможность автоматического анализа. В текстовом файле, который сейчас используется, пп.1-3 выполняются, но с п. 4, понятное дело, все плохо - нужно писать кучу парсеров. С СУБД, ввиду п. 2-3 в этом месте связываться боязно. Может я чего-то не знаю, и человечество придумало еще какие-то варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 14:34 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, угу. пишет в текстовый файл код ошибки и параметры в каких нибудь скобочках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 23:46 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Siemarglпишет в текстовый файл код ошибки и параметры в каких нибудь скобочках или этот текст со скобочками в сеть отправляет хотя отклонения бывают - логи Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2017, 23:49 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисКак в старом анекдоте про чукчу и вскрытие... Анализ лог-файла 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 14:10 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисС СУБД, ввиду п. 2-3 в этом месте связываться боязно. Совершенно непонятно, почему. Соколинский Борис2. Запись неоднородной информации Вот что там у вас за неоднородная информация такая, что запись её в БД может вызвать какие-то проблемы? это при том, что в текст всё пишется - то есть ничего хитромудрого в данных нет. Пишите как есть, сырцом, но в БД, в текстовое поле, и всё. Соколинский Борис3. Максимальная надежность работы. Современные СУБД достаточно надёжны. И в чём-то даже получше plain text будут. dbpatchлюбая база данных имеет негарантированное время реакции, потому пункты 1 и 3 отпадают Ну по поводу пункта 3 - так ведь и жёсткий диск не гарантирует real-time записи. А по первому пункту - записываемая информация, если это действительно лог, обязана содержать в себе временнЫе метки (штамп времени, синтетический штамп или ещё что), устанавливающие порядок, и, значит, сортировка по этим меткам выстроит последовательность событий в правильном порядке, даже если они до сервера добрались перемешанными. А ориентироваться на физический порядок следования - это даже не смешно. dbpatchа так вообще есть такая штука как syslog-ng Ага, которая хранит логи на сервере БД. Только дополнительно организует ещё слой буферизации, чтобы чего не потерять. Но если товарищ логирует собственное приложение, так он и сам организовать такую буферизацию может, без привлечения сторонних средств. И процесс слива буфера на сервер БД - низкоприоритетный рядом с приложением или нормальный рядом с сервером БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 14:39 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
AkinaПишите как есть, сырцом, но в БД, в текстовое поле, и всё. В этом случае теряется все преимущество БД по сравнению с текстовым файлом. AkinaСовременные СУБД достаточно надёжны. И в чём-то даже получше plain text будут. В плане хранилища данных - возможно. Меня беспокоит исключительно механизм передачи. Если лодка перевернется программа упадет, намного больше шансов, что какая-то информация потеряется. А для логов это совершенно недопустимо. Кроме того, у меня многопоточное приложение и логи пишутся отовсюду. Не уверен, что найдется хорошее решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 15:23 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисВ текстовом файле, который сейчас используется, пп.1-3 выполняются, но с п. 4, понятное дело, все плохо - нужно писать кучу парсеров. а плохго то что? а почему кучу, а не один полнофункцинальный? платформа какая и объём логирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 15:33 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Изопропила плохго то что? а почему кучу, а не один полнофункцинальный? Один полнофункциональный будет состоять из кучи неполнофункциональных :) Информацию нужно анализировать в разных разрезах - на что идет время, как работают разные алгоритмы, и т.д. Изопропил платформа какая и объём логирования? Винда XP - 10. Объем зависит от длительности работы и состава логгируемых операций. От 100К до 10М. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:18 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М. байт(записей) в секунду сколько в пике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:21 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисВ этом случае теряется все преимущество БД по сравнению с текстовым файлом. Не понял. Что теряется? Ничего не теряется. Просто у тебя должно быть ТРИ этапа. 1) Накопление данных Данные складываются в БД как есть, без парсинга и преобразований. Задача этапа - сохранить данные максимально быстро и без потерь. Одноразово. 2) Предобработка, парсинг и формализация данных Данные парсятся, параметры раскидываются по полям, а то и таблицам, конвертируются в необходимые типы, проводятся необходимые предобработки и предрасчёты. Одноразово, выполняется по завершении первого этапа. 3) Обработка и анализ Получение необходимых результатов на основании обработанных данных. При необходимости - обращение к оригиналам. Сколько угодно раз. Соколинский БорисМеня беспокоит исключительно механизм передачи. Если программа упадет, намного больше шансов, что какая-то информация потеряется. Ну что за детский лепет? А если программа-логгер упадёт? вот только не говори, что невозможно - программа она программа и есть, упасть - только дай. Боишься за механизм передачи, сеть хреновая - значит, делай ещё локальную кэш-прослойку, которая примет логи, забуферит, и по мере возможности передаст на сервер. А лучше сеть переделать, разъёмы там перебить, хабы на коммутаторы поменять... Соколинский Борису меня многопоточное приложение и логи пишутся отовсюду. Тем более - кэширующий процесс, в фоне, когда время есть, сливающий логи на сервер, не будет лишним. Сколько у тебя там суммарно логов в одном сеансе, ежели в гигабайтах мерить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:22 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М.Да ё моё! я думал, там гигабайты дикие... накапливай в памяти, а по завершении процесса всё сливай на лог-сервер в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:23 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
AkinaНе понял. Что теряется? Ничего не теряется. Просто у тебя должно быть ТРИ этапа. ... Тем более - кэширующий процесс, в фоне, когда время есть, сливающий логи на сервер, не будет лишним. Мама дорогая... Столько всего городить ради решения второстепенной задачи. AkinaА если программа-логгер упадёт? вот только не говори, что невозможно - программа она программа и есть, упасть - только дай. Как таковой программы-логгера пока нет, рабочая программа сама пишет. Упасть/зависнуть, конечно, может. И в этом свете совет хранить все в буфере, а сбрасывать в конце выглядит особо уместным. Особенно, когда одна из задач записи лога - разобраться, почему программа падает/зависает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:44 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
ИзопропилСоколинский БорисОбъем зависит от длительности работы и состава логгируемых операций. От 100К до 10М. байт(записей) в секунду сколько в пике? примерно 20К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:54 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисУпасть/зависнуть, конечно, может. И в этом свете совет хранить все в буфере, а сбрасывать в конце выглядит особо уместным. буфер может жить в разделяемой(shared) памяти . делов то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 16:55 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Изопропилбуфер может жить в разделяемой(shared) памяти . делов то Может. Только придется guard отдельный писать, который будет его сбрасывать если прога подвиснет. В общем, от тормозов избавился путем создания отдельного потока записи лога. Вопрос с форматом пока открыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 18:29 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисКак таковой программы-логгера пока нет, рабочая программа сама пишет.Ну как я в общем-то и предполагал - сама программа и есть кроме всего прочего логгер. Соколинский БорисСтолько всего городить ради решения второстепенной задачи. Господи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить? и можно даже с шареной памятью не связываться, через локалхост оно пролетает со свистом, тем более в таких-то объёмах. А на старте пусть она сразу зарезервит себе памяти с избытком, скажем, метров 50, чтобы с выделением-освобождением не связываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 19:12 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
AkinaГосподи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить? В смысле tcp-сервер сделать? Теоретически возможно, но когда критично время порядка нескольких мс., закладываться на оперативность сервиса черезчур оптимистично. А если через upd, то хрен поймешь, жив он или мертв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 20:46 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисА если через upd, то хрен поймешь, жив он или мертв. есть PGM протокол. PS такое ощущение, что система запуска баллистических ракет пишется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 21:15 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисВ смысле tcp-сервер сделать?Ну да, типа сервер... хотя один несчастный открытый сокет как-то на сервер не тянет, но пусть его. Соколинский Борисно когда критично время порядка нескольких мсНа локалхосте, ага... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2017, 21:18 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисAkinaГосподи, чего тут городить-то? отдельная приблуда, которая через локалхост получает данные, и по мере готовности лог-сервера отправляет их туда - это городить? В смысле tcp-сервер сделать? Теоретически возможно, но когда критично время порядка нескольких мс., закладываться на оперативность сервиса черезчур оптимистично. А если через upd, то хрен поймешь, жив он или мертв. Выводил как-то в сокет все события из EvenLog-а системы, так куда побольше будет, у меня "телнет-клиент" ещё и показывать их успевал и хайлайты вешать с 20% загрузкой проца. А просто сохранить в файл это куда быстрее. PS: потеря пакетов на localhost это круто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 17:31 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), О потере речь не идет, исключительно о времени передачи. Условно - должно работать не 1-3 мс., а если больше 10 - то катастрофа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 18:07 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский Борисkealon(Ruslan), О потере речь не идет, исключительно о времени передачи. Условно - должно работать не 1-3 мс., а если больше 10 - то катастрофа. 10 мс это много. На нормальном компе через localhost можно прогонять 150-200 Мб/сек, т.е. за 10 мс можно прокачать 1.5-2 Мб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 18:50 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Dima T, Это много в смысле среднего значения. Но мало в смысле максимального. Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 20:22 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисЭто много в смысле среднего значения. Но мало в смысле максимального. Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше.Э-э-э ... Вы забыли, как работает UDP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2017, 20:55 |
|
||
|
Как нам реорганизовать [s]Рабкрин[/s] лог-файл?
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисDima T, Это много в смысле среднего значения. Но мало в смысле максимального. Т.е. условно, из 1000 пакетов ни один не должен передаваться дольше. Не понимаю в чем тут вообще проблема. Это же лог, что страшного в том что запишется туда на 10 мс позже? Я так понял у тебя проблема в тормозах из-за записи, эта проблема частично порешается если писать в TCP соединение, т.к. запись станет быстрее из-за того что отправка пойдет в параллельном потоке, т.е. твой рабочий поток будет тратить время только на подготовку содержимого записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2017, 08:42 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=17&tid=1340241]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 146ms |

| 0 / 0 |
