Aqui está uma maneira de fazer isso. Gera um monte de arquivos, mas não consigo pensar em outra maneira de fazê-lo.
Supondo que você não esteja por perto para ver quando o servidor fica ocupado, é necessário usar o sysstat para capturar seus dados de recursos históricos.
Primeira maneira: use sysstat e colete estatísticas a cada 5 minutos (demora cerca de 8mb por dia). Sua entrada no cron seria algo como
5 * * * * / usr / lib / sa / sa1
ou
5 * * * * / usr / lib64 / sa / sa1
O sysstat manterá até um mês de dados. Mas você sempre pode copiar os arquivos e arquivá-los também.
Você usaria o comando "sar" para pesquisar dados históricos para ver a que horas o seu servidor estava ocupado.
Agora que você tem dados históricos em seu servidor, também é necessário capturar a saída do processo para poder ver o que está sendo executado no momento. Você pode usar "ps" ou "top" para isso
Assim, a cada 5 minutos, você também pode capturar a saída de top e ps auxww para ver todos os processos em execução. Eu criaria dois subdiretórios "toparchive" e "psarchive" e os colocaria como meus trabalhos cron.
5 * * * * top -b -n 1 > /root/toparchive/top.'date +"%Y%m%d_%H%M%S"'
ou
5 * * * * ps auxww > /root/psarchive/ps.'date +"%Y%m%d_%H%M%S"'
(isso vai ser um monte de arquivos, alternativamente você pode criar scripts para que você tenha subdiretórios adicionais com um datestamp, como / root / toparchive / 20140701 /)
Mas, basicamente, assista ao seu sysstat e você pode descobrir quando o seu servidor está ocupado, então verifique a saída top ou ps adequada que você capturou para ver o que ocupou o seu espaço
Se o processo estiver sobrecarregando a memória, você poderá usar adicionalmente "pmap" e "pgrep" para ver também os processos atuais e o uso de memória real.