我已经对我的 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%:
配置文件是相同的(我使用 Ansible 进行自动部署)。我已经用 对网络进行了基准测试iPerf
,速度相同。我 ping 了两个 VPS,新服务器丢失了 2.5 毫秒(不是同一个数据中心,对我来说似乎没问题)。
让我感到惊喜的是服务器资源并没有达到最大值:
最后但同样重要的一点是,为什么有这么多空闲连接?我缺少哪些设置来提高性能?
编辑1
前:
bonnie++ -u postgres -d /tmp/ -s 4096M -r 1096
http://pastebin.com/mBi8UstPstream
http://pastebin.com/xrLN9Q6s
后:
bonnie++ -u postgres -d /tmp/ -s 4096M -r 1096
1.http://pastebin.com/hbTrZ8hT(平常的日子里)2.http://pastebin.com/h8PYQxiw(周日晚上)stream
http://pastebin.com/fDm9aNDh
编辑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
我已迁移回我的初始服务器,这消除了:
- 由于服务器原始特性导致性能下降
- 由于网络延迟导致性能下降
该问题纯粹是由于以下之一或两者之间的相互作用造成的:
- Ubuntu 16.04.1 LTS
- Postgres 9.6.1
- pgbouncer 1.7.2
我可能会问一个新问题。