我有一个Windows2008服务器,内存为8GB,运行IIS7和MySQL。我一直在跟踪服务器上的内存、cpu和磁盘的使用情况,我发现MySQL只使用250 on的内存,使得磁盘非常繁忙,尽管我有大量的空闲内存。
在Server中,我可以轻松地设置我希望它使用的内存量,我正在MySQL中寻找相同的设置。
如何配置MySQL以使用更多的内存并减少cpu和磁盘的使用?
发布于 2009-07-20 02:12:27
table_cache是要更改的最有用的配置指令。每次MySQL访问一个表时,它都会将该表加载到缓存中。如果您有大量的表,那么缓存它们会更快。
通过运行以下命令查看服务器变量:
show status;并查看变量open_tables。如果这与您的table_cache值相同,并且opened_tables不断上升,那么您需要在配置文件中增加table_cache值。通过在高峰时期对这些变量进行实验,您可以找到一个平衡。您希望对其进行配置,以便在高峰时,即使服务器已经运行了很长一段时间,也会出现少量的opened_tables。
key_buffer_size也是一个很好的实验变量。这个变量会影响索引缓冲区的大小,使这个变量变大会增加MySQL的索引处理速度。您可以再次使用show variables;命令查看变量,并将key_read_requests与key_reads进行比较。理想情况下,您希望这两个变量之间的比率尽可能低,并且可以通过增加key_buffer_size的大小来做到这一点。如果您将这个变量设置得更高,那么您将有更少的直接到磁盘的写入和读取,这是您主要关心的问题。
发布于 2009-07-20 01:58:46
您需要更改my.cnf文件中的值并重新启动MySQL,尽管在MySQL运行时也可以更改其中的许多值(“设置全局VARIABLE=value”)。
如果您有任何key_buffer_size表,那么您可能希望先考虑增加sort_buffer、read_buffer和table_cache,然后再考虑增加innodb_buffer_pool_size。其中的一些值,您可以增加很长的路(甚至两个数量级),特别是在您的硬件。MySQL的默认设置非常保守,似乎是针对大约十年前常见的混合用途桌面。哦,请注意,32位版本在使用2GB以上的RAM时会有问题。
有关更多信息和指导,请在MySQL手册中查看。
https://serverfault.com/questions/42789
复制相似问题