如何configurationmysql-server的重负载

我在build立一个新的数据库服务器的过程中。 我以前一直在运行几个MySQL数据库服务器,它一直工作正常。

但我想听听我的服务器推荐的设置。 例如,我应该设置最大连接数,query_cache_size,table_cache等等。

我有每秒4-600每秒:

打开表格:112查询每秒avg:430.386。

我设置它的服务器有以下configuration

Linux版本2.6.32-5-amd64(Debian 2.6.32-41squeeze2)

2个Intel Xeon X3440 @ 2.53GHz

4GB内存

/,/ boot,/ tmp等在软件RAID1,2个7200RPM SATA

软件RAID0上的数据位置,2x7200RPM SATA

我将把MySQL数据库放在RAID0上。

我即将失去什么? 让我知道!

在此先感谢,即时通讯期待您的来信:-)

/拉斯穆斯

如果不知道工作量的types,数据量和使用模式,就不可能给出任何正确的答案。 老实说,即使有一些最终的知识,你将不得不自己找出最好的。 这意味着很多的基准testing, 跟踪里面发生的事情 ,定期检查慢速查询日志等。

mysql的默认设置对于现代硬件并不是最佳select,作为一个合理的起点,你可以使用percona的mysqlconfiguration向导或者mysqltuner.pl提出的值。

在您的情况下,最有可能作为存储引擎的inodb将会更加优化。 只有4GB的内存是相当less的[但是我不知道你的数据集的总大小是多less]。 2倍至强X3440在CPU功耗方面有很大的优势,你最好有很多的并发stream量,并且能够把所有的数据放到内存中,否则你不会使用可用的处理器来等待磁盘读取/写入数据。

边注:关于raid0的数据? 我希望你有实时复制的热备份服务器,或者数据并不重要。

RAID0 aka stripe对于DB来说是非常危险的。 还有一切。 一个磁盘丢失 – 一切都丢失了。 条纹比单磁盘和其他RAID略快,但风险太大。

WTF? 你有非性能关键的东西/容易恢复的东西运行镜子,而你的性能关键,易变的数据在JBOD ????? 遗漏了什么? 你已经完全倒退了。

这是第一个,也是最突出的问题。 如果你真的有4个磁盘,并假设这是某种OLTP应用程序,那么我会采取像…

disk1 [md0][md1 ][md2 ] disk2 [md0][md1 ][md2 ] disk3 [sw0][md3 ] disk4 [sw1][md3 ] 

在md0上启动,在md1上启动,在md2和md3上分布的数据(其中md0 … 3是RAID1)。 使用磁盘3和4上的非镜像RAID(可以考虑将日志放在自己的分区中而不是sw1中)。

OLAPtypes系统的设置将会非常不同。

您可能还想花一些时间思考在数据分区上运行的文件系统(xfs可能是一个安全的select)。

至于调整mysql实例 – 这取决于你正在存储什么数据以及它如何被访问。 阅读手册中的调整部分,并获取myqltuner.pl和/或Percona工具包。 但首先你需要确定innodb或myisam是否适合你 – 这又取决于数据的布局和访问方式。

对于基本的统计和build议,你可以从mysqltuner.pl脚本开始。 不要盲目推荐build议,否则可能会降低性能。

MySQLTuner Github页面

对于扩展的支持和常见的build议/调整值得检查Percona官方网站和他们的博客