powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скачки быстродействия у Postgresql.
6 сообщений из 6, страница 1 из 1
Скачки быстродействия у Postgresql.
    #35319041
Mike Patutin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CentOS Linux + Tomcat + PgSQL 8.2.6

На данный момент работает под нагрузкой ~12 HTTP запросов в секунду что трансформируеся .~ в 50 SQL запросов в секунду к базе.
Таблицы не велики. 100 штук. 1 == 400000 записей, парочка по 100000 остальные максимум 5000 записей + таблица геотаргертинга 1600000 записей.

В течение часа можно нагрузку считать постоянной

Все запросы оформлены в виде function на pgplsql.
Часть таблиц менятся непрерывно, точнее ежеминутно (регистры обращений), часть наполняется за счет регистров (кумулятивная статистика), а регистры, в свою очередь полностью очищаются после заполнения статистики.

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

средняя нагрузка в обычном состоянии ~0.35 - 0.5
запросов дольше 40 миллисекунд практически нет.
памяти отдано 512 мег
fsync выключен
сбор статистики включен
автовакуум включен

Проблема следующая: в совершенно произвольное время, РЕЗКО поднимается нагрузка на проц. с 0.35 до 2.5 все это счастье длится что то в районе 2 минут, после этого пропадает. Все приходит в норму минут на 10 - 15 потом опять.
в логе, в это время - количество запросов не меняется ( чаще даже становится меньше ), т.е. с внешней стороны, никаких авралов не происходит.
Нагрузка генерируется постгресом. Это видно в top и sa.


Что может быть? Откуда берется нагрузка? Что может происходить с базой? Что сделать чтоб понять?
...
Рейтинг: 0 / 0
Скачки быстродействия у Postgresql.
    #35319201
Stat222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>Что может быть? Откуда берется нагрузка?
Ктото смотрит статистику по этому делу :).

>>Что сделать чтоб понять?
log_min_duration?
select * from pg_stat_activity?
...
Рейтинг: 0 / 0
Скачки быстродействия у Postgresql.
    #35319720
Mike Patutin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stat222>>Что может быть? Откуда берется нагрузка?
Ктото смотрит статистику по этому делу :).

>>Что сделать чтоб понять?
log_min_duration?
select * from pg_stat_activity?

log_min_duration_statement = 15 в данный момент уменьшение до 5 мало что дает.
еще раз повторюсь - длинных запросов просто нет. Выше 40 мс очень редко что то проскакивает.

pg_ stat_activity просто пустой. в момент пиковой нагрузки - максимум что появляется, это в ожидании 1 или 2 транзакции, да стандартные процедуры выбора данных, ну и в лог, соответственно при высокой нагрузке выводится немного больше запросов, повторюсь немного, относительно спокойного режима. Но, мне кажется, что это скорее последствия чем причина.

В целом я грешу на автовакуум. Должно ли отображаться что либо при его работе в pg_stat_activity?

И еще, если у меня несколько транзакций находятся в ожидании блокировки таблицы это может давать эффект нагрузки?
Поясню:
Может ли давать эффект резкого роста load average взаимные блокировки такого вида при выполении их в количестве 20 запросов в секунду(сумма времен всех транзакций > чем 1 сек)?

START TRANSACTION
SELECT somefield FROM critical_table .... FOR UPDATE
регистрации и обновления из нескольких select && insert && update общей длиной во времени под 50-100 ms
COMMIT TRANSACTION
...
Рейтинг: 0 / 0
Скачки быстродействия у Postgresql.
    #35320295
iz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iz
Гость
Блокировки нагрузки не создают, поскольку транзакции просто ждут, когда их снимут, не производя при этом никаких операций. Вы не упомянули за счет чего растет нагрузка? Простейшее предположение в такой ситуации -- нагрузка растет за счет iowait, поскольку начинается checkpoint. Чтобы понять, верно ли это предположение, используйте iostat в моменты пиковой нагрузки + поиграйтесь руками с операцией CHECKPOINT + попробуйте поэкспериментировать с параметрами checkpoint_timeout и checkpoint_segments в postgresql.conf.
...
Рейтинг: 0 / 0
Скачки быстродействия у Postgresql.
    #35328661
Mike Patutin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, извелся весь.
3 дня воюю, так просвящения и не получилось.

Почему может прыгать LA?

Core 2 Duo 2.4, 2048MB RAM, 2x 320gig SATA
Нагрузка на проц ( средняя ) 10% с дельтой в в 5%

Средний вывод iostat:

avg-cpu: %user %nice %system %iowait %steal %idle
13.87 0.00 1.02 0.00 0.00 85.11
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
md2 32.09 0.00 128.38 0 380

с минимальными отклонениями.
На checkpoint - подскакивает iowait, но нагрузка одномоментная, и отношения к проблеме, судя по всему, не имеет

Ethernet 100mb. Загрузка канала - смешная 80 кб/с в пиках до 500 кб/с

Работает связка Tomcat 5.5 + PostgreSQL 8.2.6
process accounting включен. sa говорит что 18% нагрузки с tomcat и 81% нагрузки с Postgresql

В лог постгреса выводится все что дольше 10ms
Нагрузка - порядка 15 запросов в секунду.

В логе проскакивают запросы к таблице геотаргетинга (5-6 в минуту).
duration: 15.439 ms execute <unnamed>: SELECT * FROM adv_sp_get_geo_target($1)

И ОЧЕНЬ РЕДКО что то еще. В любом случае, запросов длиннее чем 40 ms я вообще не вижу.

Автовакуум включал, выключал, но это ровным счетом ничего не дает.

select * from pg_stat_activity;
пуст за РЕДЧАЙШИМИ исключениями вне зависимости от нагрузки.



Я, откровенно говоря - в тупике. Даже не знаю что думать. Броски LA до 2.00-2.5 никуда не делись.
...
Рейтинг: 0 / 0
Скачки быстродействия у Postgresql.
    #35328744
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скачок LA до 2х может всего лишь означать, что ваша система выполняет два процесса одновременно (у вас ведь SMP ядро?). попробуйте посчитать количество одновременно выполняющихся процессов при малых LA и при больших. Имхо до LA до 4 (2 выполняются, 2 в очереди) вполне нормальны для двух корной системы.
LA - это не нагрузка на проц, это общая загрузка системы.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скачки быстродействия у Postgresql.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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