我们有一个几乎每分钟都会创建一个新DB的环境,在几天或几周后(最多1个月),它将被删除,因此所使用的空间在/var/lib/mysql/中约为300 DB~400 DB,大小为500 DB。
我们在Centos6 VM上使用Centos6 5.3.5 (固定的,没有升级的机会)。
当mysql卷与85K DataBases一起使用90%时,新数据库的创建非常缓慢,而DB下降也非常缓慢。
85K DataBases对MariaDB 5.3.5来说是不是太高了?
有文件记载的安全限度是多少?
如何使数据库创建不被数据库删除所阻塞?
当DataBases太多时,什么才是缓慢的真正罪魁祸首呢?
在服务器上可以启用哪些参数来跟踪慢度?
详细信息:每个DB将有12个表。每个表将有10~100行。
每个DB将在3MB~5MB左右。
我们使用的是LVM,与/挂载为ext4。
MariaDB 5.3.5使用LinuxKern2.6.32-504.3.3.el6.x86_64在Centos6.6VM上运行。
VM有4个cpus (3 3GHz),内存为32 VM,托管在VMWare ESX5.5上,运行在思科UCS上。
发布于 2015-09-04 16:43:52
如前所述,文件系统就是问题所在。但是,可能有一些调优会有所帮助。
如果innodb_file_per_table已经打开,那么每个数据库目录中都有2*12个文件。关闭它会导致更少的文件(但不会减少目录)。这可能会有帮助。
SHOW VARIABLES LIKE 'table%';
SHOW VARIABLES LIKE 'innodb%files';
SHOW VARIABLES LIKE 'open%';
SHOW GLOBAL STATUS LIKE 'Opened%';
SHOW GLOBAL STATUS LIKE 'Uptime%';
SHOW GLOBAL STATUS LIKE 'Table%';可以从这些输出中收集到一些信息。
或者,给我(1)内存,(2) SHOW VARIABLES;,和(3) SHOW GLOBAL STATUS;。我将运行一些检查,看看table_open_cache是否太小,以及其他事情。
发布于 2015-09-04 16:24:44
如果我理解的话,你可以创建多达85,000个数据库?嗯,我同意其中一个帖子,而不是最好的方法。我唯一能想到的问题是"information_schema“不能跟上数据库的数量。你的key_buffer_size是什么?你的公开文件限制是多少?Table_cache?
老实说,你最好以不同的方式来处理这个问题。与其创建少表少行的许多数据库,不如将所有这些数据库合并到几个数据库/表中。如果必须分离模式(DBs),我将生成多个Mysql服务器,并有一个循环系统来在每个服务器上创建数据库。
(MySQL对数据库的数量没有限制。底层文件系统可能对目录数量有限制。)
https://dba.stackexchange.com/questions/114195
复制相似问题