powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Log файл как ограничить аппетит
25 сообщений из 32, страница 1 из 2
Log файл как ограничить аппетит
    #39947762
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давеча вчера столкнулся с проблемой - подвис сервер и причина банальная - диск был под завязку забит лог файлами.
Оказалось, что они съели 80% всего места (честно проверял, было все неплохо, но потом перешли на протокол ODBC и получился кирдык).
Оказалось, что один Log файл в несжатом виде занимал 11 Gb ну и плюс куча архивированных файлов.

Сегодня и вчера настраивал журнал для Log файлов.
Сделал, чтобы он автозаменялся (раз в 7 дней), остальные потуги к реальным изменениям не привели.

Вопрос в следующем.
Имеется связь с Windows из Debian по ODBC протоколу. Перекачиваются тиковые сделки. За день набегает около 1,8-2,5 Гб данных (около 1'600'000 сделок и это в урезанном варианте, в полном до 7-8 млн записей).
В журнале ну они вообще никак не нужны, а postgres из туда суёт.
Получается что то типа
Код: sql
1.
2.
!!! pid=1395: СООБЩЕНИЕ:  оператор: INSERT INTO **_tiki_unlog (вырезано...) VALUES ('10:01:27', 'GAZP', 188.550000, 20.00000000, 'Продажа', 'TQBR', '15.04.2020')
!!! pid=1395: СООБЩЕНИЕ:  продолжительность: 0.074 мс


То есть в лог файл пишется, что в таблицу вставлена строка с такими то значениями, время выполнения столько то.
Как убрать это сообщения. Резал в настройках postgresql.conf всё что можно по инструкции (мануал), но эти записи так и лезут.
У кого есть какие мысли.
.
Мыслей и идей просто уже не осталось.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947786
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О,

log_statement у вас включен.

ещё за логирование запросов отвечает log_min_duration_statement - но из-за того что у вас это две разные строки - речь именно о log_statement
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947852
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij


log_statement у вас включен.

ещё за логирование запросов отвечает log_min_duration_statement - но из-за того что у вас это две разные строки - речь именно о log_statement


Она активна и там указано 'none'
Код: sql
1.
log_statement = 'none'			# none, ddl, mod, all


Что говорит о том, что не должен регистрировать ничего.

Так же было указано, что
log_min_duration_statement (integer) =50, что говорит о том, что регистрировать события которые длятся дольше 50 мс, но запросы выполняются всего 0,065 мс!.

Указал что
log_statement = 'ddl' # none, ddl, mod, all ( ddl записывает все команды определения данных, такие как
CREATE, ALTER, DROP)
и указал что
log_min_duration_statement (integer) =-1 (запрет на регистрацию времени выполнения). Проверю сейчас.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947853
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделал как в посте выше.
Итог сегодня утром (сейчас).:

Код: sql
1.
2.
!!! pid=1314: СООБЩЕНИЕ:  оператор: INSERT INTO ***tiki_unlog (затерто...) VALUES ('10:02:09', 'ROSN', 323.500000, 10.00000000, 'Купля', 'TQBR', '15.04.2020')
!!! pid=1314: СООБЩЕНИЕ:  продолжительность: 0.062 мс



То есть все то же самое.
У меня рабочий PostgreSQL это 11 версия.
На машине стоит так же 12 версия, но она пустая. Скопировал и туда тот же файл настроек postgresql.conf , но результат такой же!

Размер log файла не изменился (получается тот же гигантский размер).
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947854
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня еще вот что смущает.
Дело в том, что при старте БД она все равно пишет время выполнения процесса, даже после того, как явно указано не выводить время в запросе.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
!!! pid=565: СООБЩЕНИЕ:  система БД была выключена: 2020-04-16 07:16:40 MSK
!!! pid=555: СООБЩЕНИЕ:  система БД готова принимать подключения
!!! pid=651: СООБЩЕНИЕ:  неполный стартовый пакет
!!! pid=691: СООБЩЕНИЕ:  оператор: 
!!! pid=691: СООБЩЕНИЕ:  продолжительность: 2.273 мс
!!! pid=705: СООБЩЕНИЕ:  оператор: 
!!! pid=705: СООБЩЕНИЕ:  продолжительность: 0.058 мс
!!! pid=708: СООБЩЕНИЕ:  оператор: 
!!! pid=708: СООБЩЕНИЕ:  продолжительность: 0.057 мс



Сервер перезагружал физически, так что перезагрузка была.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947860
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так
logging_collector = off
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947866
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov
а так
logging_collector = off



Было logging_collector = on
Сделал
logging_collector = off # Enable capturing of stderr and csvlog

1) Не создаёт файл под названием, которое даю я. Просто пишет в файл по умолчанию под названием postgresql-11-main.log
2) Но в самом файле тиковые данные все равно идут.
Код: sql
1.
2.
!!! pid=1361: СООБЩЕНИЕ:  оператор: INSERT INTO ***_tiki_unlog (затерто....) VALUES ('10:04:11', 'TATN', 541.800000, 1.00000000, 'Купля', 'TQBR', '15.04.2020')
!!! pid=1361: СООБЩЕНИЕ:  продолжительность: 0.067 мс


3) И судя по размеру файла - все то же самое.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947867
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О
Alex_Ustinov
а так
logging_collector = off



Было logging_collector = on
Сделал
logging_collector = off # Enable capturing of stderr and csvlog

1) Не создаёт файл под названием, которое даю я. Просто пишет в файл по умолчанию под названием postgresql-11-main.log
2) Но в самом файле тиковые данные все равно идут.
Код: sql
1.
2.
!!! pid=1361: СООБЩЕНИЕ:  оператор: INSERT INTO ***_tiki_unlog (затерто....) VALUES ('10:04:11', 'TATN', 541.800000, 1.00000000, 'Купля', 'TQBR', '15.04.2020')
!!! pid=1361: СООБЩЕНИЕ:  продолжительность: 0.067 мс


3) И судя по размеру файла - все то же самое.
.


прикрепите полный конфиг ваш и тогда можно будет понять... или хотя бы grep log postgresql.conf (то что к логгированию относится).
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947869
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попытаюсь удалить Postgres версии 12. Все равно не используется, может быть поможет, хотя шансы близки к нулю.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947870
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О
Alex_Ustinov
а так
logging_collector = off



Было logging_collector = on
Сделал
logging_collector = off # Enable capturing of stderr and csvlog

1) Не создаёт файл под названием, которое даю я. Просто пишет в файл по умолчанию под названием postgresql-11-main.log
2) Но в самом файле тиковые данные все равно идут.
Код: sql
1.
2.
!!! pid=1361: СООБЩЕНИЕ:  оператор: INSERT INTO ***_tiki_unlog (затерто....) VALUES ('10:04:11', 'TATN', 541.800000, 1.00000000, 'Купля', 'TQBR', '15.04.2020')
!!! pid=1361: СООБЩЕНИЕ:  продолжительность: 0.067 мс


3) И судя по размеру файла - все то же самое.
.


И как минимум покажите что показывает база в ответ на
show log_min_duration_statement ;
show log_statement;
show log_duration ;
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947875
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удаление PostgreSQL 12 версии не помогло.
Значит делаю следующие шаги (как указал Maxim Boguk).
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947883
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

А вот здесь очень интересно.
В настройках одно, а по факту вылазит другое
.
Файл настроек расположен по адресу
Код: sql
1.
2.
3.
4.
SELECT name, setting FROM pg_settings WHERE category = 'File Locations';
      name        |                 setting                 
-------------------+-----------------------------------------
 config_file       | /etc/postgresql/11/main/postgresql.conf


.
Там я и делаю настройки, но при запросе, выдаются СОВСЕМ ДРУГИЕ РЕЗУЛЬТАТЫ!
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947885
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сам файл настроек.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947891
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Принудительно указал off и убрал галочки с ddl
и все равно выводятся тиковые сделки.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947892
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О-О-О
Принудительно указал off и убрал галочки с ddl
и все равно выводятся тиковые сделки.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947895
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После перезагрузки сервера стали выдаваться сообщения как в лог файле.
Может в этом проблема.
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947902
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О,

1)еще один скриншот вместо текста результатов - и я этот топик закрою. Прекратите издеваться если хотите чтобы вам помогали.

2)что показывает
Код: plsql
1.
select name,setting,context,source,sourcefile,sourceline,pending_restart from pg_settings where name IN ('log_min_duration_statement', 'log_statement', 'log_duration') order by name;


?
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947917
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
О-О-О,

1)еще один скриншот вместо текста результатов - и я этот топик закрою. Прекратите издеваться если хотите чтобы вам помогали.

2)что показывает
Код: plsql
1.
select name,setting,context,source,sourcefile,sourceline,pending_restart from pg_settings where name IN ('log_min_duration_statement', 'log_statement', 'log_duration') order by name;


?


Прошу прощения, работаю дистанционно и мне важна картинка. Не сообразил, что данные можно выложить в текстовом формате. Каюсь.

Что касается запроса - то вот ответ:
Код: sql
1.
2.
3.
4.
5.
6.
7.
 postgres=# select name,setting,context,source,sourcefile,sourceline,pending_restart from pg_settings where name IN ('log_min_duration_statement', 'log_statement', 'log_duration') order by name;
            name            | setting |  context  |       source       |                    sourcefile                    | sourceline | pending_restart 
----------------------------+---------+-----------+--------------------+--------------------------------------------------+------------+-----------------
 log_duration               | on      | superuser | configuration file | /var/lib/postgresql/11/main/postgresql.auto.conf |          6 | f
 log_min_duration_statement | -1      | superuser | configuration file | /etc/postgresql/11/main/postgresql.conf          |        437 | f
 log_statement              | all     | superuser | configuration file | /var/lib/postgresql/11/main/postgresql.auto.conf |          7 | f
(3 строки)


.
И та в самом деле стоит не то что должно стоять!
Код: sql
1.
2.
3.
4.
5.
6.
7.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
track_io_timing = 'on'
track_functions = 'all'
log_line_prefix = '!!! pid=%p: '
log_duration = 'on'
log_statement = 'all'


.
Вопрос тогда как оно туда попало, на каком этапе?

Maxim Boguk, что делать? Написано - файл вручную не корректировать!
.
И спасибо Maxim Boguk , уже хоть понятна проблема!
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947929
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О,

Кто то когда то поменял через ALTER SYSTEM
или руками или через какую то тулзу администрирования.

И сбрасывать их оттуда тоже через ALTER SYSTEM.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947943
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕМ СПАСИБО.
Персональное спасибо Maxim Boguk.
.
Файлик подправил вручную.
Помогло! Теперь данные не пишутся вообще ;-). Но теперь уже понятно как действовать. Настройки уже сделаю как нужно (с учетом ротации логов по дням недели) под себя и с учетом того, что должно писаться. Проблема локализована.
.
Еще раз всем спасибо!
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947959
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хотел еще сделать кое какое уточнение по скорости работы по ODBC протоколу. Возможно, что комуто будет это весьма любопытно.

1) Если сделать таблицу с логгированием всех сделок (сделать таблицу журналируемой), то за секунду по ODBC протоколу прокачивается около 1800-2100 тиковых сделок за 1 секунду.

2) Если сделать таблицу нежурналируемой (CREATE UNLOGGED TABLE), то уже за 1 секунду прокачивается около 3000 тиковых сделок за ту же 1 секунду.

3) а если еще и отключить вывод записей в журнал (в лог файл, что сегодня в этой ветке и было сделано), то скорость возрастает до 5500 тиковых сделок за 1 секунду.

Как говорится - почувствуйте разницу, а она реальна и весьма ощутима и достигает 300% (5500/1800=3).

И при этом еще и нагрузка на процессор меньше как по времени (быстрее обрабатываются данные по времени), так и в процентном отношении (с 34 % уменьшилось до 18%).
.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947960
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помимо файла настроек postgresql.conf при изменении настроек ч\з ALTER создается доп файл настроек postgresql.auto.conf и он имеет приоритет перед
основным файлом настроек. Соответственно при правке настроек руками в основном файле они не применяться если до этого ч\з ALTER эта настройка правилась.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39947964
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guzya
Помимо файла настроек postgresql.conf при изменении настроек ч\з ALTER создается доп файл настроек postgresql.auto.conf и он имеет приоритет перед
основным файлом настроек. Соответственно при правке настроек руками в основном файле они не применяться если до этого ч\з ALTER эта настройка правилась.


Возможно, но честно говоря я не помню, чтобы я правил что то руками. Postgres уже уже установлен в образе Debian. Возможно, что эти настройки были вшиты "по умолчанию".

ALTER команды использую очень редко. В основном правлю только таблицы и то в последнее время редактирую их через pgAdmin4.
Так что очень сомневаюсь, что я бы полез в postgresql.auto.conf, особенно увидев надпись, что вручную не редактировать.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39948000
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сказал же сразу что log_statement включен.

И да, логирование всех запросов - это дорого не только и не столько по месту на диске сколько по влиянию на базу.
...
Рейтинг: 0 / 0
Log файл как ограничить аппетит
    #39948002
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О
Я хотел еще сделать кое какое уточнение по скорости работы по ODBC протоколу. Возможно, что комуто будет это весьма любопытно.

1) Если сделать таблицу с логгированием всех сделок (сделать таблицу журналируемой), то за секунду по ODBC протоколу прокачивается около 1800-2100 тиковых сделок за 1 секунду.

2) Если сделать таблицу нежурналируемой (CREATE UNLOGGED TABLE), то уже за 1 секунду прокачивается около 3000 тиковых сделок за ту же 1 секунду.

3) а если еще и отключить вывод записей в журнал (в лог файл, что сегодня в этой ветке и было сделано), то скорость возрастает до 5500 тиковых сделок за 1 секунду.

Как говорится - почувствуйте разницу, а она реальна и весьма ощутима и достигает 300% (5500/1800=3).

И при этом еще и нагрузка на процессор меньше как по времени (быстрее обрабатываются данные по времени), так и в процентном отношении (с 34 % уменьшилось до 18%).
.



2)только если электричество отключится или сервер упадет - вся таблица исчезнет (совсем вся)
2)опять же разница зависит от настроек сервера и используемого оборудования... вполне можно более менее одинаковые цифры иметь (ну почти)
3)слабые диски
4)слабый сервер

в общем unlogged только для данных которые вообще не жалко.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Log файл как ограничить аппетит
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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