Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как определить что work_memory недостаточно? / 20 сообщений из 20, страница 1 из 1
29.06.2017, 14:27
    #39479693
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Добрый день, как определить что work_memory недостаточно, какие симптомы?
...
Рейтинг: 0 / 0
29.06.2017, 14:35
    #39479703
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
work_mem
...
Рейтинг: 0 / 0
29.06.2017, 14:54
    #39479719
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilus,

симптомы – сообщения в логах о созданных временных файлах при включенной настройке log_temp_files, сильно растущее значение temp_blks_written/temp_blks_read в pg_stat_statements, либо косвенно большая нагрузка (обычно неравномерная) по записи на диск.
...
Рейтинг: 0 / 0
30.06.2017, 10:32
    #39480200
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilusДобрый день, как определить что work_memory недостаточно, какие симптомы?
1)Тормоза при выполнении запроса
2)В плане запроса (при EXPLAIN ANALYZE SELECT ...) появляется слово DISC
...
Рейтинг: 0 / 0
30.06.2017, 17:38
    #39480576
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Alexiusacidophilus,

симптомы – сообщения в логах о созданных временных файлах при включенной настройке log_temp_files, сильно растущее значение temp_blks_written/temp_blks_read в pg_stat_statements, либо косвенно большая нагрузка (обычно неравномерная) по записи на диск.


Включил.
reload сделал.
в логах ничего не пишется на эту тему.

Подскажите как искусственно создать нехватку work_mem чтобы запись в логе появилась?

cross join вызвал отжирание всей доступной памяти у процесса psql и убийством его ОС (linux)
...
Рейтинг: 0 / 0
30.06.2017, 17:55
    #39480590
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
select * from t1 order by id;

тоже вы вызывает отжирание около 10Гб psql.




А как сделать чтобы work_mem забилась и в лог начали писаться записи о создании временных файлов?
...
Рейтинг: 0 / 0
30.06.2017, 18:12
    #39480599
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilusselect * from t1 order by id;

тоже вы вызывает отжирание около 10Гб psql.




А как сделать чтобы work_mem забилась и в лог начали писаться записи о создании временных файлов?

А у вас точно log_temp_files включен?
Очень сомнительно чтобы select * from t1 order by id; отработал без них.

--
Maxim Boguk
dataegret.ru
...
Рейтинг: 0 / 0
30.06.2017, 18:16
    #39480604
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Maxim Bogukacidophilusselect * from t1 order by id;

тоже вы вызывает отжирание около 10Гб psql.




А как сделать чтобы work_mem забилась и в лог начали писаться записи о создании временных файлов?

А у вас точно log_temp_files включен?
Очень сомнительно чтобы select * from t1 order by id; отработал без них.

--
Maxim Boguk
dataegret.ru






Код: sql
1.
2.
3.
4.
5.
postgres=# select name,setting from pg_settings where name LIKE 'log_temp_files';
      name      | setting
----------------+---------
 log_temp_files | 0
(1 row)






И еще, на постртгресе на винде удалось получить сообщение в логе при аналогичном запросе base/pgsql_tmp/pgsql_tmp2988.0
но я там выставил work_mem 64KB.(тестовый сервер) На проме стоит 4МБ и он на линуксе. Никак не получается забить work_mem до ошибки. Память жрет psql десятками гигов,Ю а 4 Мб не забиваются
...
Рейтинг: 0 / 0
30.06.2017, 18:18
    #39480606
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilus,

....

Maxim BogukА у вас точно log_temp_files включен ?
...
Рейтинг: 0 / 0
30.06.2017, 18:19
    #39480607
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
pgsql_tmp пустая на линуксе.
...
Рейтинг: 0 / 0
30.06.2017, 18:19
    #39480608
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Melkijacidophilus,

....

Maxim BogukА у вас точно log_temp_files включен ?


я поставил значение 0.

его где-то еще надо включать дополнительно?
...
Рейтинг: 0 / 0
30.06.2017, 18:26
    #39480610
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilusMelkijacidophilus,

....

пропущено...



я поставил значение 0.

его где-то еще надо включать дополнительно?

на винде этого было достаточно.


А как на линуксе заставить выйти за пределы work_mem ?
...
Рейтинг: 0 / 0
30.06.2017, 18:26
    #39480611
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilus,

а, блин. Попутал с пачкой булевых настроек. log_min_messages какой?
...
Рейтинг: 0 / 0
30.06.2017, 18:27
    #39480612
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Melkijacidophilus,

а, блин. Попутал с пачкой булевых настроек. log_min_messages какой?


Код: sql
1.
warning
...
Рейтинг: 0 / 0
30.06.2017, 18:30
    #39480615
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Maxim BogukОчень сомнительно чтобы select * from t1 order by id; отработал без них.



так он не дошел до конца, т.к. psql отъел сеяток гигов пямаяти и был убит ОС.
...
Рейтинг: 0 / 0
30.06.2017, 18:38
    #39480620
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilusтак он не дошел до конца, т.к. psql отъел сеяток гигов пямаяти и был убит ОС.
это самый жирный и явный признак того, что память “не так” настроена.
...
Рейтинг: 0 / 0
30.06.2017, 18:39
    #39480621
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
vyegorovacidophilusтак он не дошел до конца, т.к. psql отъел сеяток гигов пямаяти и был убит ОС.
это самый жирный и явный признак того, что память “не так” настроена.




а как ее оптимально настроить?
...
Рейтинг: 0 / 0
30.06.2017, 18:41
    #39480622
acidophilus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
Короче, запустил запрос с order by id с виндого клиента и файлы tmp создались.
В логе запись появилась.
...
Рейтинг: 0 / 0
30.06.2017, 22:17
    #39480739
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilusа как ее оптимально настроить?
ну поищите в интернетах.
Илья Космодемьянский неоднократно доклады делал на тему настройки Linux-а для лучшей производительности
...
Рейтинг: 0 / 0
01.07.2017, 04:42
    #39480779
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить что work_memory недостаточно?
acidophilus,

так work_mem никак не запрещает psql отъедать память. что вы хотите таким запросом сделать?
запрос select * from t1 order by id может и индекс использовать и work_mem ему в этом случае не нужен.
если вы хотите кучу данных куда-то записать, то нужно их через \copy сразу писать, а не пытаться 10ГБ вывести на экран (psql скорей всего будет пытаться их отформатировать перед выводом, можно попробовать для теста с \a запрос запустить).

Подскажите как искусственно создать нехватку work_mem чтобы запись в логе появилась?
например, так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
# explain analyze select id from generate_series(1,1000000) gs(id) order by id;
                                                             QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=59.83..62.33 rows=1000 width=4) (actual time=738.382..857.157 rows=1000000 loops=1)
   Sort Key: id
   Sort Method: external sort  Disk: 13688kB
   ->  Function Scan on generate_series gs  (cost=0.00..10.00 rows=1000 width=4) (actual time=141.378..271.366 rows=1000000 loops=1)
 Planning time: 0.042 ms
 Execution time: 942.866 ms
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как определить что work_memory недостаточно? / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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