Acompanhar o uso de recursos do site individual na hospedagem compartilhada [fechado]

2

Eu tenho um servidor web Centos 6 (Apache-itk, PHP, MySQL) com o ISPconfig. Eu tenho cerca de 100 sites neste servidor, todos eles pertencem a mim. Eu devo ser capaz de rastrear a quantidade de recursos (tráfego, CPU, RAM) que cada site consome e possivelmente uma forma de limitar alguns sites em recursos, ou dar prioridade a outros sites. Qual é a melhor maneira de fazer isso sem usar a virtualização? Como os hosts da Web compartilhados gerenciam seus recursos?

editar:

tráfego : O ISPconfig mostra o uso de tráfego (tráfego de sites > web). Isso é o suficiente para mim.

CPU e RAM do Apache : Como cada vhost do apache é executado em um usuário diferente (MPM-itk), preciso saber quanto cada usuário consome recursos extras. (Eu tentei no topo, mas ainda não entendi como usá-lo)

CPU e RAM por mysql : Esta é a parte mais difícil! Todas as instâncias mysql são executadas sob o usuário mysql. Como faço para rastrear o uso de recursos do mysql por cada usuário mysql?

CloudLinux e BetterLinux parecem muito interessantes, existem alternativas gratuitas para isso?

    
por Dmitri 12.03.2013 / 12:22

1 resposta

1

CPU e contabilidade de memória

Utilize cgroups , cpuacct e controladores de memória em particular. Eles fornecem estatísticas detalhadas sobre o uso de recursos. Pode ser necessário ajustar sua configuração, garantindo que seus processos estejam vinculados a grupos de controle relevantes (já que seus sites estão sendo executados em diferentes contas do sistema, isso não deve ser difícil de implementar).

Se o uso de cgroups não for o caso, você também pode instalar psacct pacote e use o comando sa -m (ative a contabilização com accton ). No entanto, esse método só levaria em consideração os processos concluídos. No lado positivo, isso não precisará de nenhuma alteração no sistema, exceto a configuração do pacote e a ativação da contabilidade.

Contabilidade do MySQL

Este é o mais difícil. Como todos os seus sites são servidos a partir de uma instância do MySQL (se bem entendi), você não pode confiar nas estatísticas por processo / usuário como descrito acima. No entanto, algumas soluções existem: tanto MariaDB e Percona O servidor pode ser usado como substituto imediato do MySQL tradicional. Ambos os produtos incluem estatísticas do usuário: no MariaDB e no Percona Server . Esta estatística pode fornecer uma breve visão geral de como seus bancos de dados são utilizados por diferentes usuários.

Você também não deve ignorar abordagens tradicionais:

  • SQL process sampling ( show full processlist ) quando você percebe que o desempenho do seu banco de dados está congestionado;
  • não ignore consultas lentas: ative o log de consultas lentas e use o script mysqldumpslow (está incluído na distribuição do MySQL) regularmente.
por 20.03.2013 / 06:06