我正在运行一些消耗大量MySQLfunction的项目(在峰值时间为10'000 qps)…现在我想知道什么是最好的设置,以保持它的快速和平稳,即使用户数量增长。
目前,我使用nginx,php-fpm和mysql(双xeon,24 GB ram,SSD)使用1台服务器,并通过本地套接字连接到MySQL。
如果我有一个相同规格的远程MySQL服务器来分割Web服务器/数据库负载,我会遇到“性能下降”吗?
性能将会有所下降,而在延迟部分。 所以如果你运行很多并行连接,你可能不会注意到。 如果你在一个(或几个)连接中连续做10kqps,你肯定会看到不同之处。
查询处理本身不会花费更长的时间,只是从客户端到客户端的数据往返时间会增加(甚至10Gbit以太网在这里起作用)约1毫秒左右(对于1Gbit线路)。 所以如果查询本身需要花费一点多的时间,那么每个连接的数据限制在500qps左右。
使用本地套接字,往返时间几乎在几十微秒范围内。
我会遇到一个“性能下降”,如果我有一个相同规格的远程mySQL服务器,以拆分Web服务器/数据库负载?
不,如果你有千兆或更快的链接到数据库服务器。