2010-11-30 3 views
3

На самом деле, я запускаю четыре программы-демона. Это делает соединение postgres, и оно разъединяет один раз с продуктами. Но когда я помещаю ps aux, в моей системе выполняется много простаивающих процессов postgres. Я просто хочу знать, инициатор каждого праздного процесса postres. Итак, я смог узнать, какой процесс не закрывает соединение postgres должным образом.linux: Поиск postgres незанятого обработчика процесса

Спасибо заранее.

ответ

2

Если вы используете PostGreSQL 9.0, установите «имя приложения» свойство при подключении, так что вы можете различать, какой процесс клиента каждый серверный процесс разговаривает. Например (Perl):

$dbh = DBI->connect("dbi:Pg:application_name=test/$$", undef, undef) 

Это будет включать клиента PID в имени приложения, которое является некрасиво, но эффективно.

Если вы подключаетесь через TCP/IP, то pg_stat_activity включает в себя клиентский порт, который вы можете использовать с lsof (или netstat -p), чтобы найти процесс клиента.

4

Используйте следующую команду

netstat -ntp 

Он покажет имя идентификатор процесса и процесса Postgres соединителя создателя.

Смежные вопросы