我们的数据库服务器与我们的网络服务器分开。数据库服务器被复制(我们知道这里有开销)。即使关闭了复制,PHP脚本中大量查询的性能也比同一台机器上具有db和apache的登台服务器慢4倍。我意识到网络延迟和网络的其他问题意味着它们不会是平等的,但是我们的生产服务器的功能呈指数级增长,我们的生产网络都在千兆位交换机上。我们尽可能地调整了MYSQL,但性能标记仍然慢了4倍。我们使用Apache代理运行nginx并复制MYSQL dbs。 UCarp也在运行。对于寻求改善性能的领域有哪些建议?我很高兴生产速度慢两倍。
答案 0 :(得分:1)
根据你的描述,在黑暗中做很多事情很难做,但这里有一些独立尝试的起点,这有望缩小原因:
如果由于远程主机导致的预期降级之外没有其他任何内容,那么请提供可重现的测试用例和完整的MySQL配置(包含敏感数据的编辑)。这将有助于熟练使用MySQL的人帮助您; )
答案 1 :(得分:0)
并非网站上的每个Web请求(如果设计得当)都需要mysql连接。最有可能的是,如果您要求在每个http请求上建立连接,您的应用程序将无法扩展并且将很快开始出现问题。
在应用中进行更多缓存。服务器不经常请求mysql。例如。使用 内存缓存。
尝试使用从应用程序到mysql服务器的持久连接。
使用mysql数据压缩。
缩小数据(限制您的选择,在选择语句中使用列名而不是“*”)
萨满教调:
确保没有什么能减慢mysql服务器上的网络:大型防火墙规则集,网络过滤器等。
为app添加另一个(客户端无法访问的)网络接口。服务器 和mysql服务器。
调整应用之间的网络连接。服务器和mysql。有时你 通过创建硬编码网络路由可以赢得几个ms。
不要以为上述任何一项都有帮助 - 如果网络连接速度很慢,上述任何内容都不会显着加快速度。