temos o Drupal 7 na máquina virtual Ubuntu LTS (VMWare) com o servidor MySQL 5.1 no mesmo servidor físico, mas em uma máquina virtual diferente.
O site do Drupal está atualmente em desenvolvimento, portanto, praticamente não há tráfego, apesar do ping e do acesso ao shell serem rápidos, o site do Drupal está rodando de forma extremamente lenta (> 5 segundos para carregar qualquer página). Depois de pesquisas aqui e em outros lugares, eu entendo que o problema é com o fato de que o SQL é acessado via interface de rede, o que o Drupal aparentemente faz muito mal.
Eu verifiquei a resolução de DNS e não deve haver nenhuma do lado do Drupal (o host db é dado pelo ip, existe uma entrada do dns no arquivo / etc / hosts) nem do lado do MySQL (skip-name-resolve está ligado, cliente drupal é concedido acesso por endereço ip).
O Drupal devel querylog diz:
Executed 336 queries in 5993.89 ms. Queries exceeding 5 ms are
highlighted. Page execution time was 7015.35 ms. Memory used at:
devel_boot()=5.53 MB, devel_shutdown()=93.35 MB, PHP peak=94 MB.
O estranho é que, para um único carregamento de página, cerca de 2/3 das consultas são rápidas, outras são excessivamente lentas:
1.765 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
575.825 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
13.585 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache_bootstrap WHERE cid IN (:cids_0)
default
466.9914 DrupalDatabaseCache::getMultipleP A E
SELECT cid, data, created, expire, serialized FROM cache WHERE cid IN (:cids_0)
default
1.841 drupal_lookup_pathP A E
SELECT source FROM url_alias WHERE alias = :alias AND language IN (:language, :language_none) ORDER BY language ASC, pid DESC
default
A situação é remediada para o acesso anon habilitando o cache do Drupal. Toda a interface administrativa, no entanto, ainda é tão lenta.
A política atual da empresa é ter o servidor de banco de dados separadamente. Poderia haver outras opções para acelerar o Drupal?
A configuração padrão do banco de dados diz o driver 'mysql', talvez eu deva alterá-lo para 'mysqli' ou 'pdo_mysql'? Se eu mudar para o mysqli, no entanto, o database.inc reclama que o driver relevante não existe - qualquer coisa para instalar lá especificamente para o drupal, como mysqli & pdo são ambos habilitados no próprio PHP.