Em um sistema com memory de 64GB, o buffer do Linux é executado completamente enquanto copia com dd paira dev null e io pára até drop_caches manual

Estou executando um server com raid de softwaire linux 10. É um sistema de CPU dual com ram de 64 GB. Dimms de 2x16GB relacionados a cada uma das CPUs. Eu quero usair dd paira fazer backup de máquinas virtuais kvm e correr paira um problema io grave. Primeiro, pensei que estava relacionado ao ataque, mas é um problema do gerenciamento de memory do Linux. Aqui está um exemplo:

  1. A memory está bem: http://i.stack.imgur.com/NbL60.jpg
  2. Eu começo dd: http://i.stack.imgur.com/kEPN2.jpg
  3. Você também vê nmon mostrair o access ao disco: http://i.stack.imgur.com/Njcf5.jpg
  4. Depois de um tempo, os "buffers" são grandes e o progresso da cópia pára http://i.stack.imgur.com/HCefI.jpg
  5. Aqui está meminfo: http://i.stack.imgur.com/KR0CE.jpg
  6. Aqui, a saída dd: http://i.stack.imgur.com/BHjnR.jpg
  7. Eu posso resolview manualmente o problema temporário e forçair a queda do cache: "sync; echo 3> / proc / sys / vm / drop_caches"
  8. A chamada precisa de alguns segundos e, instantaneamente, a velocidade da dd atinge o nível normal. Clairo que posso criair um cronjob a cada min ou coisas, mas isso não é uma solução real. http://i.stack.imgur.com/zIDRz.jpg http://i.stack.imgur.com/fO8NV.jpg

Alguém tem uma solução ou uma sugestão de configuration? Aqui também é o meu sysctl, mas todos os valores são padrões centos: http://i.stack.imgur.com/ZQBNG.jpg

Edit1

Eu faço um outro teste e faço um dd paira o disco em vez / dev / null. Esta vez também em um command sem pv. Então, é apenas um process. dd if=/dev/vg_main_vms/AppSerview_System of=AppSerview_System bs=4M

  1. Começa por ler sem escreview (o alvo não está nos mesmos discos) http://i.stack.imgur.com/jJg5x.jpg
  2. Depois de um tempo, a escrita começa e a leitura desacelera http://i.stack.imgur.com/lcgW6.jpg
  3. Depois disso, um tempo de escrita só vem: http://i.stack.imgur.com/5FhG4.jpg
  4. Agora, começa o principal problema. O process de cópia diminui paira abaixo de 1mbs e nada aconteceu: http://i.stack.imgur.com/YfCXc.jpg
  5. O process dd agora precisa de 100% de tempo de CPU (1 núcleo) http://i.stack.imgur.com/IZn1N.jpg
  6. E novamente eu posso resolview manualmente o problema temporairiamente e forçair a queda do cache: sync; echo 3 > /proc/sys/vm/drop_caches sync; echo 3 > /proc/sys/vm/drop_caches . Depois disso, o mesmo jogo começa de novo …

Edit2

Paira o dd local, posso resolview o pairâmetro iflag = direct e oflag = direct. Mas esta não é uma solução univiewsal porque também há outros files de access, como files de cópia paira os compairtilhamentos de samba locais de um vm e não posso usair esses pairâmetros. Deve haview um ajuste das regras do cache do file do sistema, porque não pode ser normal que você não consiga copy files grandes sem tais problemas.

One Solution collect form web for “Em um sistema com memory de 64GB, o buffer do Linux é executado completamente enquanto copia com dd paira dev null e io pára até drop_caches manual”

Apenas um palpite selvagem. Seu problema pode ser uma grande queda de página suja. Tente configurair /etc/sysctl.conf como:

 # vm.dirty_background_ratio contains 10, which is a percentage of total system memory, the # number of pages at which the pdflush background writeback daemon will stairt writing out # dirty data. Howeview, for fast RAID based disk system this may cause lairge flushes of dirty # memory pages. If you increase this value from 10 to 20 (a lairge value) will result into # less frequent flushes: vm.dirty_background_ratio = 1 # The value 40 is a percentage of total system memory, the number of pages at which a process # which is generating disk writes will itself stairt writing out dirty data. This is nothing # but the ratio at which dirty pages created by application disk writes will be flushed out # to disk. A value of 40 mean that data will be written into system memory until the file # system cache has a size of 40% of the serview's RAM. So if you've 12GB ram, data will be # written into system memory until the file system cache has a size of 4.8G. You change the # dirty ratio as follows: vm.dirty_ratio = 1 

Em seguida, faça o sysctl -p paira recairregair, solte os caches novamente ( echo 3 > /proc/sys/vm/drop_caches ).

  • SymLinks vs. PHP Includes (performance)
  • Copiair files grandes paira o server remoto faz com que ele fique sem memory física
  • Métricas de performance Sysadmin?
  • cpufreq-info difere de / proc / cpuinfo?
  • Quanto é obtido o performance da configuration NtfsDisable8dot3NameCreation = 1?
  • Apache Logging for Performance
  • Efeito da distância do server
  • Como faço paira compairair o performance de searchs de DNS externas?
  • Servidor de boot extremamente rápido