极其缓慢

我在自己的VPS上安装了PostgreSQL - 访问数据库的软件是一个名为PokerTracker的程序。

PokerTracker在玩扑克的同时登录所有牌局和统计数据。

我希望这可以从几台不同的计算机访问,因此决定将它安装在我的VPS上,经过一些打嗝后,我设法让它连接无误。

然而,表现是可怕的。 我已经做了大量关于'远程postgresql慢'的研究等,我还没有找到答案,所以希望有人能够提供帮助。

注意事项:

我试图执行的查询非常小。 当在VPS上本地连接时,查询立即运行。

在远程运行时,运行查询需要大约1分30秒的时间。

VPS正在运行100MBPS,然后我连接到它的计算机位于8MB线路上。

两者之间的网络通信几乎是即时的,我可以远程连接,没有任何延迟,并且正在运行多个运行MSSQL的网站,所有查询都可以立即运行,无论是远程连接还是本地连接,因此PostgreSQL似乎都是特定的。

我正在运行他们的软件的最新版本的软件和PostgreSQL的最新兼容版本。

该数据库是一个新的数据库,几乎不包含任何数据,我已经运行了真空/分析等所有无济于事,我没有看到任何改进。

我不明白MSSQL如何几乎可以即时查询,但PostgreSQL如此挣扎。

我可以远程登录到VPS IP上的端口5432,没有任何问题,并且正如我所说的那样,查询执行起来只需要很长时间。

我注意到的是,在查询运行的时候,路由器上几乎没有任何带宽正在使用 - 但是我再也不希望它用于简单的查询,但我不确定是否这是问题。 我试过在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'

任何其他需要的信息,请让我知道。 感谢你的帮助。


我启用了日志并将日志发送给他们软件的开发人员。 他们的答案是,由于网络延迟,软件最初打算在本地或本地数据库上运行,因此在VPS上运行预计会很慢。

感谢您的所有帮助,但看起来我的想法并不是这样,而是由于软件而非VPS上的PostgreSQL。

谢谢,瑞奇


你可以做一个explain analyze ,它会告诉你在服务器上执行查询的时间 (没有将结果发送给客户端的网络开销)。

如果服务器执行时间非常快(与您所看到的时间相比),则这是一个网络问题。 如果报告的时间与您观察到的非常相似,那么这是PostgreSQL问题(然后您需要发布执行计划并且可能需要PostgreSQL配置)


使用网络监控工具(我建议使用wireshark,因为它可以跟踪许多协议,包括postgresql)以查看网络连接是否正常。 如果连接不好,您将看到丢弃/重新传输的数据包。

链接地址: http://www.djcxy.com/p/4343.html

上一篇: extremely slow

下一篇: Choosing the most colorful color in javascript