The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Посоветуйте что использовать."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Посоветуйте что использовать."
Сообщение от yuranich emailИскать по авторуВ закладки(??) on 27-Сен-04, 23:11  (MSK)
Есть приложение. Работает круглосуточно.
Выдает на консоль много отладочной информации.
Неплохо было бы всю эту инф. записывать в файл,
но не хочется слишком часто делать запись в файл,
наверно это будет тормозить систему.

Можно ли записывать во чтоо-то типа RAM, и
раз в минуту перегонять это в файл???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Посоветуйте что использовать."
Сообщение от Matracc emailИскать по авторуВ закладки on 28-Сен-04, 00:28  (MSK)
ммм...
Что, тааак много отладочной информации? Кто же это тааак быстро анализирует, притом круглосуточно? Что-то неверю, что такие объемы, которые способны загрузить систему, кому-то очень необходимы во всей целостности.
Делай более-менее читаемый формат вывода и пищи в файл.
Если не хочешь, кажется есть что-то типа syslogd - почитай. Это демон, собирающий логи (кажется так).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Посоветуйте что использовать."
Сообщение от dimus Искать по авторуВ закладки(??) on 28-Сен-04, 07:15  (MSK)
Если не хочешь использовать syslogd, то можно просто организовать большой буфер и пару потоков. Один пишет данные в буфер и когда дойдет до конца - переходит к началу, т.е. буфер кольцевой. Второй поток ждет, когда будет достигнут конец или середина буфера, и когда это событие происходит, записывает на диск тот кусок, который только что закончил заполнять первый поток. Недостаток - при внезапном отрубоне питания важная отладочная информация будет утеряна. Достоинство: обращение к диску будет происходить довольно редко.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Посоветуйте что использовать."
Сообщение от SergeiZz Искать по авторуВ закладки on 28-Сен-04, 09:34  (MSK)
>Если не хочешь использовать syslogd, то можно просто организовать большой буфер и
>пару потоков.
Классическая задача "один писатель -- один читатель". Пример есть у
Стивенса, да и в куче других мест.

Но ведь стандартная библиотека ввода/вывода и так буферизована, и размер
буфера можно менять, и сбрасывать на диск можно по требованию...

Кстати говоря. Если файл остался незакрытым в момент выключения питания,
двнных в нём может и не оказатся вовсе, независимо от того, как недавно
была выполнена последняя операция записи. Здесь и принудительный сброс на
диск не поможет.
Я писал такую утилитку, которая закрывала периодически файл с важной
информацией, но чтобы не перегружать систему делала это реже, когда в
системе выполнялось много процессов (высокий load).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Посоветуйте что использовать."
Сообщение от dimus Искать по авторуВ закладки(??) on 28-Сен-04, 12:01  (MSK)
А что, sync не помогает?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Посоветуйте что использовать."
Сообщение от SergeiZz Искать по авторуВ закладки on 28-Сен-04, 12:56  (MSK)
>А что, sync не помогает?
Помогает. Только, конечно, fsync(): сбрасывать на дист только данный файл,

Именно открытие и закрытие нужно было по другому поводу -- я, кажется,
напутал с воспоминаниями...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Посоветуйте что использовать."
Сообщение от Vladislav Lazarenko Искать по авторуВ закладки on 28-Сен-04, 14:22  (MSK)
>Есть приложение. Работает круглосуточно.
>Выдает на консоль много отладочной информации.
>Неплохо было бы всю эту инф. записывать в файл,
>но не хочется слишком часто делать запись в файл,
>наверно это будет тормозить систему.
>
>Можно ли записывать во чтоо-то типа RAM, и
>раз в минуту перегонять это в файл???

Просто так делаешь и ничего тормозить не будет.

bash# program.elf > /error.log 2>&1

Все кэшируется, так что не бойся, а вот выводить на консоль - это тормоз.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Посоветуйте что использовать."
Сообщение от Alexander S. Salieff emailИскать по авторуВ закладки on 28-Сен-04, 18:01  (MSK)
>>Есть приложение. Работает круглосуточно.
>>Выдает на консоль много отладочной информации.
>>Неплохо было бы всю эту инф. записывать в файл,
>>но не хочется слишком часто делать запись в файл,
>>наверно это будет тормозить систему.
>>
>>Можно ли записывать во чтоо-то типа RAM, и
>>раз в минуту перегонять это в файл???
>
>Просто так делаешь и ничего тормозить не будет.
>
>bash# program.elf > /error.log 2>&1
>
>Все кэшируется, так что не бойся, а вот выводить на консоль -
>это тормоз.

Абсолютно верно. Не для того EXT3 с дефолтными настройками жрет сотни метров памяти под буфера, чтобы еще самостоятельно озадачиваться буферизацией в подобных случаях ;)
Перед тобой встанет другая проблема - синхронизация твоей проги и лог-ротатора, чтобы не терялись граничные данные.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру