Eu tenho um cron que basicamente faz um simples "tar zcf" durante a noite.
O servidor possui:
- 8 núcleos - CPU Intel (R) Xeon (E5) E5606 a 2.13GHz
- 25GB RAM
- Ubuntu 12.04.2 LTS
- RAID 1 de hardware (LSI Logic / Symbios Logic MegaRAID SAS SMC2108) com duas unidades de disco rígido de 2.728TB
Como você pode ver no host de tela de monitoramento:
Durante quase todo o tempo do alcatrão, a E / S do disco vai para> 90% e faz com que todos os outros aplicativos (mysql, apache) diminuam bastante.
2 perguntas:
- É normal ter E / S de disco tão alta durante o backup?
- Existe uma maneira de limitar a E / S do disco para que outro aplicativo possa continuar funcionando corretamente?
Obrigado!
ubuntu
backup
performance
io
hard-drive
acemtp
fonte
fonte
find
(por exemplo)-perm
não acessará o inode do arquivo. Mas isso permite que a otimização use duasfind
chamadas. Se você fizer a mesmafind
ligação duas vezes (com pouco tempo), a segunda terminará em segundos (ou menos). Dependendo da quantidade de memória livre e da quantidade de dados armazenados em cache em um determinado ponto, os dados são jogados para fora do cache. Ler demais pode, portanto, apenas diminuir a velocidade da operação. Se você pode alimentar o programa de backup com nomes de arquivos via stdin, pode impedir isso lendo blocos de, por exemplo, 100 arquivos.Espera-se uma alta E / S durante os backups, porque eles geralmente são feitos sobre grandes árvores de arquivos com arquivos grandes. Você pode usar
ionice
para priorizar tarefas de E / S no Linux com classes e níveis. O IIRC, classe 2, nível 7 é o nível mais baixo e sem fome que o tornará praticamente invisível para outras cargas e usuários de E / S. Vejaman ionice
para uso e detalhes.fonte
Eu recomendaria abandonar o tar e ir com o rsync (como mencionado por Dogsbody). Eu uso o BackupPC para fazer backup de arquivos nos meus sistemas Windows e Linux e ele suporta o uso do tar e do rsync e cuida automaticamente do link físico para você, além de fornecer uma ótima interface da web.
http://backuppc.sourceforge.net/
fonte
Como outros responderam, sim, isso é normal e
ionice
é uma boa maneira genérica de não permitir que isso afete seu sistema.Várias vezes eu vi
tar
coisas das pessoas quando elas não precisam. Se alguma porcentagem dos dados que você está copiando não tiver sido alterada desde a última cópia, sugiro quersync
tente.Isso reduzirá as entradas / saídas copiando apenas os arquivos que foram alterados desde a última cópia. você não poderá reduzir o IO em mais da metade, pois todos os dados ainda precisariam ser lidos, mas reduzirá significativamente a quantidade de dados gravados (o que, dependendo do seu hardware, também pode ser uma operação mais lenta).
Se você deseja cópias / backups separados cada vez que é executado, a opção mais poderosa é –link-dest, que permite vincular arquivos inalterados a um backup anterior. Isso economiza enormes quantidades de espaço no servidor de backup. por exemplo, eu faço backup de uma máquina (Fred), Fred tem um HD de 20 GB e faço backup / copio a unidade inteira, excluindo / proc e / dev. Agora tenho um diretório de 20 GB no meu servidor de backup. No dia seguinte, faço backup de Fred novamente e –link-dest para backup de ontem. O Rsync compara os arquivos remotos com a cópia local e, se exatamente o mesmo, não será necessário transferi-los, mas vinculará o novo arquivo ao arquivo de ontem. Todos os arquivos que foram alterados são copiados de forma recente (ou parcialmente copiados usando o backup de ontem, se possível). Se apenas 100 MB de arquivos foram alterados desde ontem, agora tenho dois diretórios, ambos com 20 GB de arquivos, mas ocupando apenas 20.
Espero que ajude e ainda responda à sua pergunta.
fonte