来自MySQL8文档:
When innodb_dedicated_server is enabled, InnoDB automatically configures the following variables:
innodb_buffer_pool_size
innodb_log_file_size
innodb_log_files_in_group (as of MySQL 8.0.14)
innodb_flush_method
Only consider enabling innodb_dedicated_server if the MySQL instance resides on a dedicated server
where it can use all available system resources. Enabling innodb_dedicated_server is not recommended
if the MySQL instance shares system resources with other applications.假设服务器是专门为MySQL服务的,那么启用innodb_dedicated_server实际上会比我自己调优这些参数更好吗?
发布于 2020-07-30 14:53:28
简短的回答:不,它没有比自己设置那些调优选项更能提高性能。
在宣布该功能时,详细解释了变量innodb_dedicated_server (2017-08-24):
https://mysqlserverteam.com/plan-to-improve-the-out-of-the-box-experience-in-mysql-8-0/
它只是许多调优选项的简写。新变量不会以任何特殊的方式提高性能,它与自己设置其他调优选项完全一样。
当他们宣布这一功能时,我在博客上写了这个评论:
我很抱歉,但我一点也不喜欢这个功能。我理解改善天真用户的开箱即用体验的目标,但我不认为这个解决方案在这个目标上是成功的。
尝试用某种公式对MySQL安装进行预调是一种一刀切的解决方案,而且这种解决方案是不可靠的。我们可以回忆起其他产品的例子,这些产品试图做到这一点,但最终删除了它们的自动调整功能。
缓冲池需要尽可能多的物理RAM,这不是一个很好的假设。您已经知道这一点,因为您需要innodb_dedicated_server选项。Rick提到了数据集已经小于RAM的可能性。在这种情况下,增加更多的RAM几乎没有什么好处。
许多天真的用户错误地认为(在阅读了一些博客)增加RAM分配总是提高性能。很难向他们解释为什么这不是真的。
同样,innodb日志文件。我们假设越大越好,因为基准测试表明更大的日志文件带来了大量的写通信量的好处,因为延迟了检查点。但是如果你没有太多的写作流量呢?如果您将MySQL用于博客或99%读取的CMS?大日志文件是不必要的。为假设的工作负载或数据集大小调整大小很有可能是调优的错误选择。
我理解在安装过程中询问用户问题的困难。我最近做了一个用apt实现MySQL配置自动化的项目。要想绕过确实存在的安装提示(顺便说一句,请记录MySQL的debconf变量!),这很烦人。
还有一个问题是,即使你确实提示用户提供信息,他们也不知道问题的答案。对于您使用此功能瞄准的天真用户来说,情况尤其如此。
如果安装程序问“您在专用服务器上使用MySQL吗?”他们知道这意味着什么吗?他们可能会认为“专注”与共享托管完全相反。
如果安装程序询问“要使用此系统上的所有可用内存吗?”您会惊讶于有多少用户认为“内存”指的是磁盘空间,而不是RAM。
简而言之:(1)使用公式调优MySQL容易出错.(2)要求用户在没有信息的情况下做出选择是容易出错的。
我有另一个建议:让用户更容易对他们的选择变得不那么天真。
我认为用户需要一种友好的备忘单或信息图表来说明如何做出调整决策。这可以包括关于其数据大小和工作负载的问题列表,以及用于监视和度量的性能指标列表,如缓冲池页面创建速率和日志文件写入率。给出如何测量这些东西的提示,改变什么配置选项,然后如何再次度量,以验证更改是否具有所期望的效果。
一个简单的监测工具也是有用的。没有什么比PMM或VividCortex更复杂的长期趋势,而是更像pt-mext用于快速、短暂的测量。
安装过程唯一需要做的就是告诉用户调优是他们需要做的事情(许多用户没有意识到这一点),并将他们推荐到备忘单文档。
发布于 2020-07-27 06:21:04
只是调音而已。
为每件事提供“好的”默认设置是一项具有挑战性的任务。最大的障碍是不知道在同一台服务器上运行的其他产品(Java、WordPress等)将消耗多少机器的内存和CPU。
大型厂商使用了大量的MySQL服务器,它们将MySQL服务器与when服务器分离开来,这使得在部署服务器时快速调整少量可调性变得非常简单。
同时,不太重的用户可以通过离开这一设置而获得良好的调优效果。
https://stackoverflow.com/questions/63108914
复制相似问题