Dependendo da sua versão do Drupal: o núcleo do Drupal 6 requer que o memory_limit do PHP tenha pelo menos 16MB. O núcleo do Drupal 7 requer 32MB.
Com base no erro e na sua postagem que você alocou 28MB, confirme no arquivo php.ini que memory_limit está definido corretamente. Certifique-se de reiniciar o Apache para aplicar quaisquer alterações no php.ini.
Outro aspecto a considerar são os outros serviços que estão sendo executados em seu servidor, Apache, MySQL, etc. Eles também levam do total de 256MB.
Para ter uma ideia sobre o uso de memória atual, você pode digitar:
free -m
O sinalizador -m exibe os dados em MB. A opção -b exibe a quantidade de memória em bytes; a opção -k (configurada por padrão) exibe em kilobytes.
Você receberá uma saída como:
total used free shared buffers cached
Mem: 24031 22512 1518 0 1614 8082
-/+ buffers/cache: 12815 11215
Swap: 31999 485 31514
Dependendo da memória disponível, você pode começar a restringir o problema para o PHP ou se tiver superado / excedido o VPS.
EDITAR
@Ofri,
Não há ciência exata para a configuração do Apache. Tudo se resume a conhecer as especificações da máquina e principalmente a avaliação & erro. Monitorar o desempenho do servidor durante os períodos de avaliação e erro em andamento é importante para que você possa ver o impacto positivo / negativo.
Eu paro o Apache, edito o httpd.conf de acordo com os valores abaixo e vejo como o servidor se comporta:
- MaxKeepAliveRequests 100
- KeepAliveTimeout 15
- MinSpareServers 5
- MaxSpareServers 10
- StartServers 5
- MaxClients 150
- MaxRequestsPerChild 300
Tenha em mente que o Drupal é um sistema operacional e você pode acabar atualizando o VPS para 512MB.
-Brendan