MySQL硬件规格

目前,我们有一个35GB的数据库,并运行在具有2GB内存的虚拟机上。 预计该数据库将持续以每天3至4Gb的速度增长。

什么是这种设置build议的硬件规格? CPU和RAM分配等

我也创build了一个关于mysql缩放的类似问题。 扩展MySQL数据库但是由于我专注于MySQL优化,还没有尝试过这些build议。

我会build议马上使用MySQL 5.5与以下内容:

innodb_file_per_table < – 始终启用此function
innodb_io_capacity = 65536
innodb_read_io_threads = 64
innodb_write_io_threads-64
query_cache_size = 0(默认值:禁用查询caching)

在MySQL 5.5成熟之前,不要使用多个缓冲池。

你需要多lessRAM取决于两件事情

对于MyISAM,此查询显示您的系统应该设置的关键缓冲区大小
SELECT CHANNEL(CEILING(ndxsum / POWER(1024,2)),'M')RecommendedKeyBufferSize FROM(SELECT SUM(index_length)ndxsum FROM information_schema.tables WHERE engine ='MyISAM'and table_schema NOT IN('information_schema','mysql' )) 一个;

对于InnoDB,这个查询显示你的系统应该设置的innodb缓冲池的大小
SELECT INPUT(CEILING(innodbsum / POWER(1024,2)),'M')RecommendedInnoDBBufferPoolSize FROM(SELECT SUM(data_length + index_length)innodbsum FROM information_schema.tables WHERE engine ='InnoDB')A;

要获得MySQL Data的完整信息,请运行以下查询:

SELECT DBName,CONCAT(LPAD(FORMAT(SDSize / POWER(1024,pw),3),17,''),'',SUBSTR('KMGTP',pw + 1,1),'B')“Data Size “,”CONCAT(LPAD(FORMAT(SXSize / POWER(1024,pw),3),17,''),'',SUBSTR('KMGTP',pw + 1,1),'B' ,CONCAT(LPAD(格式(STSize / POWER(1024,pw),3),17,''),'',SUBSTR('KMGTP',pw + 1,1),'B')“Total Size”FROM (SELECT,所有数据库)DBName,SUM(DSize)SDSize,SUM(XSize)SXSize,SUM(TSize)STSize FROM(SELECT table_schema DB,data_length DSize,index_length XSize,data_length + index_length TSize FROM information_schema.tables WHERE table_schema NOT IN('mysql','information_schema','performance_schema'))AAA GROUP BY DB WITH ROLLUP)AA,(SELECT 3 pw)BB ORDER BY(SDSize + SXSize);

设置(select0 pw)BB字节
设置(SELECT 1 pw)BB对于千字节
设置(SELECT 2 pw)BB为兆字节
设置(SELECT 3 pw)BB对于千兆字节
设置(SELECT 4 pw)BB对于TeraBytes
设置(select5 pw)BB对于PetaBytes(给我发电子邮件,如果你开始使用这个)

最大key_buffer_size是4GB,所以不要超过这个。

innodb_buffer_pool_size的最大值应该是75-80%或安装了RAM

总是将innodb_log_file_size设置为innodb_buffer_pool_size的25%

innodb_log_file_size的最大值是2047M(InnoDB不能与2G或2048M一起使用,你可以查看MySQL源代码)

考虑到这些事情,您应该能够预测/etc/my.cnf中所需的设置以及硬件。

试一试 !!!

显然你给了我们很less的细节,但是如果你想购买你自己的硬件,那么我会build议一个非常标准的双CPU系统,最初只有一个中档的E56xx系列Xeon,要么是3 x 2GB或3 x 4GB的1333/1066 DDR3内存,2或4个1Gbps网卡,一个硬件RAID控制器,带有一对小型廉价(147-300GB)7.2krpm SATA或10krpm SAS启动盘,然后是RAID 10arrays要么4个体面的质量7.2krpm 2TB磁盘或4个600GB 10 / 15krpm SAS磁盘。 如果不是所有的性能和弹性要求,那么这应该会达到最大程度,并且可以让您快速简单地将CPU容量加倍,同时还可以根据需要添加更多的内存以及一组合理的磁盘。

像惠普,戴尔,IBM和超微这样的机器最卖这种机器,所以应该有很多好的交易。

回来给我们,如果你有更多的细节确定。

嗯,所以在几年之内你会有一个1.3 Tb的数据库。

你是对的 – 一个小虚拟机不会处理它。

假设这不仅仅用于简单的日志logging,还需要大量的处理器/内存 – 尽pipe您没有提供关于系统如何被使用的信息。

忘记高端硬件,你需要直接跳到商品集群系统。 我build议从4个盒子开始,所以你可以从一开始就掌握分片和复制。 4Gb内存(虽然这是你应该灵活的地方 – 增加内存比CPU / NIC /磁盘带宽容易得多)和双核物理内核,镜像本地存储可能是一个明智的起点。 他们应该孤立在他们的1Gb局域网段,巨型帧可能是一个好主意。

虽然你可能会考虑转向NoSQL数据库 – 但是也有类似的硬件规格。