Я установил PostgreSQL на VPS, который у меня есть - программное обеспечение для доступа к базе данных - это программа PokerTracker.
PokerTracker регистрирует все ваши руки и статистику во время игры в онлайн-покер.
Я хотел, чтобы это было доступно с нескольких разных компьютеров, поэтому решил установить его на свой VPS, и после нескольких сбоев мне удалось подключить его без ошибок.
Однако производительность ужасна. Я провел множество исследований по «медленному удаленному postgresql» и т. Д., И мне еще предстоит найти ответ, поэтому я надеюсь, что кто-то сможет помочь.
На что обратить внимание:
Запрос, который я пытаюсь выполнить, очень маленький. При локальном подключении к VPS запрос выполняется мгновенно.
При удаленном запуске запроса требуется около 1 минуты 30 секунд.
VPS работает со скоростью 100 МБ / с, а затем компьютер, к которому я подключаюсь, находится на линии 8 МБ.
Сетевое взаимодействие между ними происходит практически мгновенно, я могу нормально подключаться без каких-либо задержек и размещаю несколько веб-сайтов, работающих на MSSQL, и все запросы выполняются мгновенно, независимо от того, подключены ли они удаленно или локально, так что это кажется специфичным для PostgreSQL.
Я использую их новейшую версию программного обеспечения и новейшую совместимую версию PostgreSQL с их программным обеспечением.
База данных - это новая база данных, в которой почти нет данных, и я провела анализ / анализ и т. Д., Но все безрезультатно, я не вижу улучшений.
Я не понимаю, как MSSQL может запрашивать практически мгновенно, но PostgreSQL так сильно борется.
Я могу без проблем подключиться к порту 5432 по IP-адресу VPS, и, как я уже сказал, запрос действительно выполняется, это занимает очень много времени.
То, что я замечаю, это то, что на маршрутизаторе, когда выполняется запрос, едва ли используется какая-либо полоса пропускания, но опять же, я бы не ожидал, что это произойдет для простого запроса, но я не уверен, что это проблема. Я попытался подключиться удаленно в 3 разных сетях (включая разные маршрутизаторы), но проблема остается.
Дистанционное подключение через другой компьютер через локальную сеть происходит мгновенно.
Я также отредактировал файл postgre conf, чтобы учесть больше памяти / буферов и т. Д., Но я не думаю, что это проблема - то, что я прошу это сделать, очень просто - оно не должно быть интенсивным вообще.
Спасибо,
Рики
Изменить: Обратите внимание, что клиент и сервер работают под управлением Windows.
Вот информация из файлов конфигурации.
pg_hba - currently allowing all traffic:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
# host all all ::1/128 md5
И postgresqlconf - я знаю, что для этой конфигурации я выделил огромное количество буферов / памяти, просто чтобы проверить, была ли это проблема - показаны только незакомментированные строки:
listen_addresses = '*'
port = 5432
max_connections = 100
shared_buffers = 512MB
work_mem = 64MB
max_fsm_pages = 204800
shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
log_destination = 'stderr'
logging_collector = on
log_line_prefix = '%t '
datestyle = 'iso, mdy'
lc_messages = 'English_United States.1252'
lc_monetary = 'English_United States.1252'
lc_numeric = 'English_United States.1252'
lc_time = 'English_United States.1252'
default_text_search_config = 'pg_catalog.english'
Любая другая необходимая информация, пожалуйста, дайте мне знать. Спасибо за вашу помощь.