powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите решить проблему с зависанием сервера
6 сообщений из 6, страница 1 из 1
помогите решить проблему с зависанием сервера
    #39111439
kkv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
периодически (1-2 раза в сутки-трое суток) зависает сервер.
возрастает нагрузка на проц до 100%
иногда помогает service postgresql restart
а иногда помогает только reboot

на всякий случай, для убивания тупняковых запросов использую pg_cancel_backend(pid)
(тоже не со всеми запросами справляется почемуто)

поставил для мониторинга заббикс, но не знаю какие параметры мониторить.
на что стоит обратить внимание?
...
Рейтинг: 0 / 0
помогите решить проблему с зависанием сервера
    #39111473
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkv79,

запросы лучше прибивать через pg_terminate_backend(pid).

мониторить как минимум число коннектов, максимальную длительность транзакции, %disk util, ну и все остальное стандартное для системы.
...
Рейтинг: 0 / 0
помогите решить проблему с зависанием сервера
    #39111484
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kkv79,

Заодно расскажите, как настроен сам сервер. Как настроен swap, работает ли еще что-нибудь помимо PG, настройки PG.
Совпадало ли время зависания с какими-либо характерными действиями пользователей.
...
Рейтинг: 0 / 0
помогите решить проблему с зависанием сервера
    #39111569
kkv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexiuskkv79,
мониторить как минимум число коннектов, максимальную длительность транзакции, %disk util, ну и все остальное стандартное для системы.


так?
число коннектов:
Код: sql
1.
select count(*) from pg_stat_activity



максимальную длительность транзакции
Код: sql
1.
2.
3.
4.
5.
select coalesce(extract(epoch from max(age(now(), query_start))), 0) 
from pg_stat_activity 
where state <> 'idle in transaction' 
and state <> 'idle'
and not query ~ 'autovacuum:'



может ещё что?
...
Рейтинг: 0 / 0
помогите решить проблему с зависанием сервера
    #39111573
kkv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidokkv79,

Заодно расскажите, как настроен сам сервер. Как настроен swap, работает ли еще что-нибудь помимо PG, настройки PG.
Совпадало ли время зависания с какими-либо характерными действиями пользователей.

эм... а что значит "как настроен swap"?
оперативы 100 гигов, swap тоже 100 гигов, до свапа дела не доходят, оператива занята наполовину

работает apache2, парочка простеньких java - приложений


в момент зависания, запрос
Код: sql
1.
2.
3.
select now()-query_start t, pid, usename, client_addr,  query, query_start
from pg_stat_activity where state<>'idle'
order by t desc


выдаёт кучу зависших запросов, каждый раз разных
как раз их и не мог убить pg_cancel_backend(pid)
сейчас поставил pg_terminate_backend(pid), поглядим что будет....



"Совпадало ли время зависания с какими-либо характерными действиями пользователей."
пользователей много, самому интересно это понять....
только незнаю как....


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
~# grep -vE "^\s*#|^\s*$" /etc/postgresql/9.3/main/postgresql.conf
data_directory = '/var/lib/postgresql/9.3/main'		# use data in another directory
hba_file = '/etc/postgresql/9.3/main/pg_hba.conf'	# host-based authentication file
ident_file = '/etc/postgresql/9.3/main/pg_ident.conf'	# ident configuration file
external_pid_file = '/var/run/postgresql/9.3-main.pid'			# write an extra PID file
listen_addresses = '*'                  # what IP address(es) to listen on;
port = 5432				# (change requires restart)
unix_socket_directories = '/var/run/postgresql'	# comma-separated list of directories
ssl = true				# (change requires restart)
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'		# (change requires restart)
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'		# (change requires restart)
wal_level = hot_standby
max_wal_senders = 3
wal_keep_segments = 64
log_line_prefix = '%t '			# special values:
log_timezone = 'localtime'
datestyle = 'iso, dmy'
timezone = 'localtime'
lc_messages = 'ru_RU.UTF-8'			# locale for system error message
lc_monetary = 'ru_RU.UTF-8'			# locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8'			# locale for number formatting
lc_time = 'ru_RU.UTF-8'				# locale for time formatting
default_text_search_config = 'pg_catalog.russian'
default_statistics_target = 50 # pgtune wizard 2015-08-19
maintenance_work_mem = 1GB # pgtune wizard 2015-08-19
constraint_exclusion = on # pgtune wizard 2015-08-19
checkpoint_completion_target = 0.9 # pgtune wizard 2015-08-19
effective_cache_size = 72GB # pgtune wizard 2015-08-19
work_mem = 48MB # pgtune wizard 2015-08-19
wal_buffers = 8MB # pgtune wizard 2015-08-19
checkpoint_segments = 16 # pgtune wizard 2015-08-19
shared_buffers = 24GB # pgtune wizard 2015-08-19
max_connections = 1300 
...
Рейтинг: 0 / 0
помогите решить проблему с зависанием сервера
    #39111868
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkv79,

Тут в списке http://www.postgresql.org/message-id/flat/CACjxUsPg+TEGoxDba0EV4B=BE1agNP2JmGwuO9MnocKa_+CR_A@mail.gmail.com]pgsql-general проскочило что-то подобное .

Проверьте, что выдает:
Код: sql
1.
2.
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите решить проблему с зависанием сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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