对于2000数据库,您应该调整table cache设置.您肯定在此缓存中有很多缓存未命中.
尝试使用mysqltunner和/或tunning_primer.sh获取有关设置潜在问题的其他信息.
现在drupal使数据库工作量很大,请检查一下Drupal的安装,您可能会生成很多(太多)的请求.
关于innodb_buffer_pool_size,您肯定有很多分页缓存未命中,而只有少量缓冲区(8Mb).理想的大小是当所有数据和索引大小都可以容纳在此缓冲区中,并且具有2000个数据库时……肯定是很小的大小,但是您将很难增长.调试MySQL服务器非常困难,如果MySQL占用过多RAM,则您的Apache将无法获得足够的RAM.
解决方案是:
>检查您是否没有使用DNS名称但使用IP进行连接
(的情况下)
>购买更多RAM
>在单独的服务器上设置MySQL
>调整设置
对于Drupal,请尝试将会话设置为不在数据库中,而是在内存缓存中设置(您需要使用RAM,但对于MySQL来说更好),为此可以使用模块.如果您拥有Drupal 7,您甚至可以尝试在memcache中设置某些缓存表而不是MySQL(不要对大缓存表进行设置).
编辑:最后一件事,希望您没有修改Drupal以使用持久数据库连接,某些模块允许这样做(或者有一个旧的drupal 5尝试自动执行此操作).使用2000数据库,您将杀死服务器.尝试检查mysql错误日志中是否存在“太多连接”错误.