编辑1

编辑1

我已经对我的 VPS 托管进行了改进,但发现性能明显下降。

前 : AMD 8 [email protected], 16 GB RAM, Ubuntu 14.04, Postgres 9.4, Pgbouncer 1.7, SSD 80Mb/s

后: Haswell 4 [email protected], 24 GB RAM, Ubuntu 16.04, Postgres 9.6, Pgbouncer 1.7.2, SSD 180Mb/s

我的应用程序监控性能(NewRelic)显示 SQL 响应时间增加了 100%: NewRelic APM 显示 SQL 从平均 100 毫秒激增至平均 250 毫秒

配置文件是相同的(我使用 Ansible 进行自动部署)。我已经用 对网络进行了基准测试iPerf,速度相同。我 ping 了两个 VPS,新服务器丢失了 2.5 毫秒(不是同一个数据中心,对我来说似乎没问题)。

让我感到惊喜的是服务器资源并没有达到最大值:

服务器性能监控显示所有资源使用率都很低

最后但同样重要的一点是,为什么有这么多空闲连接?我缺少哪些设置来提高性能?

Postgres 仪表板

编辑1

前:

后:

编辑2

之前,ping:

root@vps170028:~# ping vps166893.ovh.net
PING vps166893.ovh.net (149.202.33.76) 56(84) bytes of data.
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=1 ttl=63 time=0.490 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=2 ttl=63 time=0.504 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=3 ttl=63 time=0.541 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=4 ttl=63 time=0.520 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=5 ttl=63 time=0.501 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=6 ttl=63 time=1.12 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=7 ttl=63 time=0.538 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=8 ttl=63 time=0.723 ms
64 bytes from 76.ip-149-202-33.eu (149.202.33.76): icmp_seq=9 ttl=63 time=0.488 ms
^C
--- vps166893.ovh.net ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 7999ms
rtt min/avg/max/mdev = 0.488/0.603/1.126/0.198 ms

之后,ping:

root@vps170028:~# ping vps332984
PING vps332984.ovh.net (51.255.200.128) 56(84) bytes of data.
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=1 ttl=57 time=5.32 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=2 ttl=57 time=5.23 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=3 ttl=57 time=5.24 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=4 ttl=57 time=5.32 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=5 ttl=57 time=5.11 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=6 ttl=57 time=5.35 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=7 ttl=57 time=5.17 ms
64 bytes from 128.ip-51-255-200.eu (51.255.200.128): icmp_seq=8 ttl=57 time=5.46 ms
^C
--- vps332984.ovh.net ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7007ms
rtt min/avg/max/mdev = 5.110/5.278/5.462/0.132 ms

编辑3

之前和之后对表 1 进行选择查询的性能,吞吐量相同。

特定查询的爆炸式增长

答案1

我已迁移回我的初始服务器,这消除了:

  1. 由于服务器原始特性导致性能下降
  2. 由于网络延迟导致性能下降

该问题纯粹是由于以下之一或两者之间的相互作用造成的:

  • Ubuntu 16.04.1 LTS
  • Postgres 9.6.1
  • pgbouncer 1.7.2

我可能会问一个新问题。

相关内容