Попробуйте проверить, сколько времени займет запрос, выполняемый локально:
Подключитесь к локальной базе данных, используя psql:
psql -U username dbname
Включите отображение информации о времени:
dbname=> \timing
Timing is on.
Установить вывод для локального временного файла:
dbname=> \o /tmp/foo.txt
Выберите все строки из таблицы во временный файл:
dbname=> select * from foo;
Time: 104.442 ms
Проверка пропускной способности TCP между вашим сервером и вашим клиентом:
(на клиенте - я полагаю, Linux) Временно отключите брандмауэр:
# service iptables stop
(на клиенте) Начните прослушиваниена порту 10000:
# nc -l 10000 > /dev/null
(на сервере) Отправьте файл клиенту, используя обычный протокол TCP:
# time nc client_ip 10000 < /tmp/foo.txt
real 0m0.190s
user 0m0.004s
sys 0m0.078s
(на клиенте) Включить брандмауэр обратно:
# service iptables start