В 2000 базах данных вы должны отрегулировать настройку table cache . В этом кеше у вас определенно не хватает кеша.
Попробуйте использовать mysqltunner и / или tunning_primer.sh, чтобы получить другую информацию о потенциальных проблемах с настройками.
Теперь drupal интенсивно работает с базами данных, проверяет установки Drupal, возможно, вы генерируете много (слишком много) запросов.
Что касается innodb_buffer_pool_size, у вас наверняка много промахов кеширования страниц с небольшим буфером (8 Мб). Идеальный размер - это когда все ваши данные и размеры индексов могут поместиться в этом буфере, и с 2000 базами данных ... ну, конечно, это очень маленький размер, но вам будет трудно расти. Настроить сервер MySQL сложно, если MySQL отнимает слишком много оперативной памяти, ваш apache не сможет получить достаточно оперативной памяти.
Решения:
- проверьте, что вы не устанавливаете связь с DNS-именами, но с IP
(в случае)
- купить больше оперативной памяти
- установить MySQL на отдельном сервере
- отрегулируйте свои настройки
Для Drupal, попытайтесь установить сессию не в базе данных, а в memcache (для этого вам понадобится RAM, но для MySQL это будет лучше), модули для этого доступны. Если у вас Drupal 7, вы можете даже попытаться установить некоторые из таблиц кэша в memcache вместо MySQL (не делайте этого с большими таблицами кэша).
edit: Последнее, я надеюсь, вы не модифицировали Drupal для использования постоянных соединений с базами данных, некоторые модули позволяют это (или имеют старый drupal 5, который пытается сделать это автоматически). С базой данных 2000 вы убьете свой сервер. Попробуйте проверить журнал ошибок mysql на наличие ошибок "слишком много соединений".