Eu tenho um único arquivo de 50 GB no server_A e estou copiando-o para o server_B. eu corro
server_A$ rsync --partial --progress --inplace --append-verify 50GB_file root@server_B:50GB_file
Server_B tem 32 GB de RAM com swap de 2 GB. É principalmente ocioso e deveria ter muita RAM livre. Tem bastante espaço em disco. Com cerca de 32 GB, a transferência é interrompida porque o lado remoto encerrou a conexão.
Server_B agora saiu da rede. Pedimos ao centro de dados para reiniciá-lo. Quando olho para o log do kernel antes de travar, vejo que ele estava usando 0 bytes de swap e a lista de processos estava usando muito pouca memória (o processo rsync foi listado como usando 600 KB de RAM), mas o oom_killer foi enlouquecendo, e a última coisa no log é onde ele mata o processo de leitura do kernel do metalog.
Este é o kernel 3.2.59, 32 bits (portanto, nenhum processo pode mapear mais de 4 GB).
É quase como se o Linux desse mais prioridade ao armazenamento em cache do que aos daemons de longa duração. O que da?? E como posso impedir que isso aconteça novamente?
Aqui está a saída do oom_killer:
Sep 23 02:04:16 [kernel] [1772321.850644] clamd invoked oom-killer: gfp_mask=0x84d0, order=0, oom_adj=0, oom_score_adj=0
Sep 23 02:04:16 [kernel] [1772321.850649] Pid: 21832, comm: clamd Tainted: G C 3.2.59 #21
Sep 23 02:04:16 [kernel] [1772321.850651] Call Trace:
Sep 23 02:04:16 [kernel] [1772321.850659] [<c01739ac>] ? dump_header+0x4d/0x160
Sep 23 02:04:16 [kernel] [1772321.850662] [<c0173bf3>] ? oom_kill_process+0x2e/0x20e
Sep 23 02:04:16 [kernel] [1772321.850665] [<c0173ff8>] ? out_of_memory+0x225/0x283
Sep 23 02:04:16 [kernel] [1772321.850668] [<c0176438>] ? __alloc_pages_nodemask+0x446/0x4f4
Sep 23 02:04:16 [kernel] [1772321.850672] [<c0126525>] ? pte_alloc_one+0x14/0x2f
Sep 23 02:04:16 [kernel] [1772321.850675] [<c0185578>] ? __pte_alloc+0x16/0xc0
Sep 23 02:04:16 [kernel] [1772321.850678] [<c0189e74>] ? vma_merge+0x18d/0x1cc
Sep 23 02:04:16 [kernel] [1772321.850681] [<c01856fa>] ? handle_mm_fault+0xd8/0x15d
Sep 23 02:04:16 [kernel] [1772321.850685] [<c012305a>] ? do_page_fault+0x20e/0x361
Sep 23 02:04:16 [kernel] [1772321.850688] [<c018a9c4>] ? sys_mmap_pgoff+0xa2/0xc9
Sep 23 02:04:16 [kernel] [1772321.850690] [<c0122e4c>] ? vmalloc_fault+0x237/0x237
Sep 23 02:04:16 [kernel] [1772321.850694] [<c08ba7e6>] ? error_code+0x5a/0x60
Sep 23 02:04:16 [kernel] [1772321.850697] [<c08b0000>] ? cpuid4_cache_lookup_regs+0x372/0x3b2
Sep 23 02:04:16 [kernel] [1772321.850700] [<c0122e4c>] ? vmalloc_fault+0x237/0x237
Sep 23 02:04:16 [kernel] [1772321.850701] Mem-Info:
Sep 23 02:04:16 [kernel] [1772321.850703] DMA per-cpu:
Sep 23 02:04:16 [kernel] [1772321.850704] CPU 0: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850706] CPU 1: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850707] CPU 2: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850709] CPU 3: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850711] CPU 4: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850713] CPU 5: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850714] CPU 6: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850716] CPU 7: hi: 0, btch: 1 usd: 0
Sep 23 02:04:16 [kernel] [1772321.850718] Normal per-cpu:
Sep 23 02:04:16 [kernel] [1772321.850719] CPU 0: hi: 186, btch: 31 usd: 70
Sep 23 02:04:16 [kernel] [1772321.850721] CPU 1: hi: 186, btch: 31 usd: 116
Sep 23 02:04:16 [kernel] [1772321.850723] CPU 2: hi: 186, btch: 31 usd: 131
Sep 23 02:04:16 [kernel] [1772321.850724] CPU 3: hi: 186, btch: 31 usd: 76
Sep 23 02:04:16 [kernel] [1772321.850726] CPU 4: hi: 186, btch: 31 usd: 29
Sep 23 02:04:16 [kernel] [1772321.850728] CPU 5: hi: 186, btch: 31 usd: 61
Sep 23 02:04:16 [kernel] [1772321.850731] CPU 7: hi: 186, btch: 31 usd: 17
Sep 23 02:04:16 [kernel] [1772321.850733] HighMem per-cpu:
Sep 23 02:04:16 [kernel] [1772321.850734] CPU 0: hi: 186, btch: 31 usd: 2
Sep 23 02:04:16 [kernel] [1772321.850736] CPU 1: hi: 186, btch: 31 usd: 69
Sep 23 02:04:16 [kernel] [1772321.850738] CPU 2: hi: 186, btch: 31 usd: 25
Sep 23 02:04:16 [kernel] [1772321.850739] CPU 3: hi: 186, btch: 31 usd: 27
Sep 23 02:04:16 [kernel] [1772321.850741] CPU 4: hi: 186, btch: 31 usd: 7
Sep 23 02:04:16 [kernel] [1772321.850743] CPU 5: hi: 186, btch: 31 usd: 188
Sep 23 02:04:16 [kernel] [1772321.850744] CPU 6: hi: 186, btch: 31 usd: 25
Sep 23 02:04:16 [kernel] [1772321.850746] CPU 7: hi: 186, btch: 31 usd: 158
Sep 23 02:04:16 [kernel] [1772321.850750] active_anon:117913 inactive_anon:9942 isolated_anon:0
Sep 23 02:04:16 [kernel] [1772321.850751] active_file:106466 inactive_file:7784521 isolated_file:0
Sep 23 02:04:16 [kernel] [1772321.850752] unevictable:40 dirty:0 writeback:61 unstable:0
Sep 23 02:04:16 [kernel] [1772321.850753] free:143494 slab_reclaimable:128312 slab_unreclaimable:4089
Sep 23 02:04:16 [kernel] [1772321.850754] mapped:6706 shmem:308 pagetables:915 bounce:0
Sep 23 02:04:16 [kernel] [1772321.850759] DMA free:3624kB min:140kB low:172kB high:208kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolate
d(file):0kB present:15808kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:240kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tm
p:0kB pages_scanned:0 all_unreclaimable? yes
Sep 23 02:04:16 [kernel] [1772321.850763] lowmem_reserve[]: 0 869 32487 32487
Sep 23 02:04:16 [kernel] [1772321.850770] Normal free:8056kB min:8048kB low:10060kB high:12072kB active_anon:0kB inactive_anon:0kB active_file:248kB inactive_file:388kB unevictable:0kB isolated(anon)
:0kB isolated(file):0kB present:890008kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:513008kB slab_unreclaimable:16356kB kernel_stack:1888kB pagetables:3660kB unstable:0
kB bounce:0kB writeback_tmp:0kB pages_scanned:1015 all_unreclaimable? yes
Sep 23 02:04:16 [kernel] [1772321.850774] lowmem_reserve[]: 0 0 252949 252949
Sep 23 02:04:16 [kernel] [1772321.850785] lowmem_reserve[]: 0 0 0 0
Sep 23 02:04:16 [kernel] [1772321.850788] DMA: 0*4kB 7*8kB 3*16kB 6*32kB 4*64kB 6*128kB 5*256kB 2*512kB 0*1024kB 0*2048kB 0*4096kB = 3624kB
Sep 23 02:04:16 [kernel] [1772321.850795] Normal: 830*4kB 80*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 1*4096kB = 8056kB
Sep 23 02:04:16 [kernel] [1772321.850802] HighMem: 13*4kB 14*8kB 2*16kB 2*32kB 0*64kB 0*128kB 2*256kB 2*512kB 3*1024kB 0*2048kB 136*4096kB = 561924kB
Sep 23 02:04:16 [kernel] [1772321.850809] 7891360 total pagecache pages
Sep 23 02:04:16 [kernel] [1772321.850811] 0 pages in swap cache
Sep 23 02:04:16 [kernel] [1772321.850812] Swap cache stats: add 0, delete 0, find 0/0
Sep 23 02:04:16 [kernel] [1772321.850814] Free swap = 1959892kB
Sep 23 02:04:16 [kernel] [1772321.850815] Total swap = 1959892kB
Sep 23 02:04:16 [kernel] [1772321.949081] 8650736 pages RAM
Sep 23 02:04:16 [kernel] [1772321.949084] 8422402 pages HighMem
Sep 23 02:04:16 [kernel] [1772321.949085] 349626 pages reserved
Sep 23 02:04:16 [kernel] [1772321.949086] 7885006 pages shared
Sep 23 02:04:16 [kernel] [1772321.949087] 316864 pages non-shared
Sep 23 02:04:16 [kernel] [1772321.949089] [ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name
(rest of process list omitted)
Sep 23 02:04:16 [kernel] [1772321.949656] [14579] 0 14579 579 171 5 0 0 rsync
Sep 23 02:04:16 [kernel] [1772321.949662] [14580] 0 14580 677 215 5 0 0 rsync
Sep 23 02:04:16 [kernel] [1772321.949669] [21832] 113 21832 42469 37403 0 0 0 clamd
Sep 23 02:04:16 [kernel] [1772321.949674] Out of memory: Kill process 21832 (clamd) score 4 or sacrifice child
Sep 23 02:04:16 [kernel] [1772321.949679] Killed process 21832 (clamd) total-vm:169876kB, anon-rss:146900kB, file-rss:2712kB
Aqui está a saída 'top' depois de repetir meu comando rsync como um usuário não root:
top - 03:05:55 up 8:43, 2 users, load average: 0.04, 0.08, 0.09
Tasks: 224 total, 1 running, 223 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 99.9% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 33204440k total, 32688600k used, 515840k free, 108124k buffers
Swap: 1959892k total, 0k used, 1959892k free, 31648080k cached
Aqui estão os parâmetros sysctl vm:
# sysctl -a | grep '^vm'
vm.overcommit_memory = 0
vm.panic_on_oom = 0
vm.oom_kill_allocating_task = 0
vm.oom_dump_tasks = 1
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.dirty_background_ratio = 1
vm.dirty_background_bytes = 0
vm.dirty_ratio = 0
vm.dirty_bytes = 15728640
vm.dirty_writeback_centisecs = 500
vm.dirty_expire_centisecs = 3000
vm.nr_pdflush_threads = 0
vm.swappiness = 60
vm.lowmem_reserve_ratio = 256 32 32
vm.drop_caches = 0
vm.min_free_kbytes = 8192
vm.percpu_pagelist_fraction = 0
vm.max_map_count = 65530
vm.laptop_mode = 0
vm.block_dump = 0
vm.vfs_cache_pressure = 100
vm.legacy_va_layout = 0
vm.stat_interval = 1
vm.mmap_min_addr = 4096
vm.vdso_enabled = 2
vm.highmem_is_dirtyable = 0
vm.scan_unevictable_pages = 0
Portanto, vamos ler a saída do oom-killer e ver o que pode ser aprendido a partir daí.
Ao analisar logs OOM killer, é importante observar o que o desencadeou. A primeira linha do seu log nos dá algumas pistas:
order=0
está nos dizendo quanta memória está sendo solicitada. O gerenciamento de memória do kernel só é capaz de gerenciar números de página nas potências de 2, então o clamd solicitou 2 0 páginas de memória ou 4KB.Os dois bits mais baixos do GFP_MASK (obter máscara de página gratuita) constituem a chamada máscara de zona informando ao alocador de qual zona obter a memória :
Zonas de memória é um conceito criado principalmente por questões de compatibilidade. Em uma visão simplificada, existem três zonas para um Kernel x86:
No seu caso, o zonemask é 0, o que significa que clamd está solicitando memória de
ZONE_NORMAL
.As outras bandeiras estão resolvendo
de acordo com a documentação do Linux MM , portanto, sua solicitação tem os sinalizadores para
GFP_ZERO
,GFP_REPEAT
, eGFP_FS
, portanto, não é particularmente exigente.GFP_IO
GFP_WAIT
Então, o que há com
ZONE_NORMAL
? Algumas estatísticas genéricas podem ser encontradas mais adiante na saída OOM:Notável aqui é que
free
é apenas 8K demin
e muito abaixolow
. Isso significa que o gerenciador de memória do seu host está com problemas e o kswapd já deve estar trocando as páginas, pois está na fase amarela do gráfico abaixo:Mais algumas informações sobre a fragmentação de memória da zona são fornecidas aqui:
basicamente afirmando que você tem uma única página contígua de 4 MB com o restante fortemente fragmentado em páginas de 4 KB.
Então vamos recapitular:
clamd
) obtendo memória,ZONE_NORMAL
enquanto a alocação de memória não privilegiada geralmente seria executada a partirZONE_HIMEM
ZONE_NORMAL
kswapd
regras do , deveria ter visto alguma atividade de paginação de antemão, mas nada está sendo trocado, mesmo sob pressão de memória emZONE_NORMAL
, sem causa aparenteoom-killer
foi invocadoTudo isso parece bastante estranho, mas pelo menos deve estar relacionado ao que está descrito na seção 2.5 do excelente livro de John O'Gorman "Entendendo o Linux Virtual Memory Manager" :
(o destaque é meu)
Como o 3.2 tem vários avanços no gerenciamento de memória em relação ao 2.6, essa não é uma resposta definitiva, mas uma dica muito forte que eu seguiria primeiro. Reduza a memória utilizável do host para no máximo 16 G usando o
mem=
parâmetro do kernel ou removendo metade dos DIMMs do servidor.Por fim, use um Kernel de 64 bits .
Cara, é 2015.
Algumas coisas ...
Minha regra geral para espaço de troca é ter pelo menos 2x a quantidade de memória RAM física. Isso permite que o daemon de página/swap reorganize a memória com eficiência.
Server_B tem 32 GB de RAM, então tente configurá-lo para 64 GB de swap. IMO, os 2 GB de espaço de troca que seu servidor possui são muito baixos, especialmente para um servidor.
Se você não tiver uma partição extra que possa transformar em uma partição swap, você pode testar isso criando um arquivo e montando-o como uma partição swap [será lento]. Consulte https://www.maketecheasier.com/swap-partitions-on-linux/
Como o server_B tem bastante espaço em disco, --inplace não é necessário e pode ser indesejado, pois pode ser o que está causando o rsync usar 32 GB. --inplace só é realmente útil se você tiver pouco espaço no sistema de arquivos [o que não é] ou tiver algum requisito especial de desempenho.
Meu palpite é que o rsync vai querer usar 50 GB de RAM [o tamanho do arquivo] com suas opções atuais. Normalmente, o rsync não precisa de muita memória para fazer seu trabalho, então uma ou mais de suas opções podem ser o problema. Costumo transferir arquivos de 200 GB sem problemas.
Faça algumas execuções de teste sem opções. Faça isso com arquivos menores, digamos 10 GB - isso deve evitar o pânico do kernel, mas ainda permite que você monitore o comportamento que está causando o problema. Monitore o uso de memória do rsync.
Gradualmente, adicione opções de retorno, uma de cada vez, para ver qual opção [ou combinação de opções] faz com que o rsync comece a consumir RAM (por exemplo, enquanto a transferência está acontecendo, o uso de RAM do rsync cresce proporcionalmente à quantidade de dados de arquivo transferidos, etc).
Se você realmente precisa das opções que fazem com que o rsync mantenha alguma imagem de arquivo in-ram, você precisará do espaço de troca extra e o tamanho máximo do arquivo será limitado de acordo.
Mais algumas coisas [ATUALIZADO]:
(1) O rastreamento da pilha do kernel mostra que o rsync estava com falha de página em uma área mmap. Provavelmente está mapeando o arquivo. O mmap não oferece garantia de que será liberado no disco até que o arquivo seja fechado [ao contrário da leitura/gravação], que vai para o cache do bloco FS imediatamente [onde será liberado]
(2) A falha/pânico do kernel está ocorrendo quando o tamanho da transferência atinge o tamanho da RAM. Claramente, o rsync está pegando tanta memória não fscache via malloc ou mmap. Mais uma vez, com as opções que você especificou, o rsync alocará 50 GB de memória para transferir um arquivo de 50 GB.
(3) Transfira um arquivo de 24 GB. Isso provavelmente funcionará. Em seguida, inicialize o kernel com mem=16G e faça o teste de arquivo de 24 GB novamente. Ele explodirá em 16 GB em vez de 32 GB. Isso confirmará que o rsync realmente precisa da memória.
(4) Antes de dizer que adicionar swap é ridículo, tente adicionar alguns [através do método swap-to-file]. Isso é muito mais fácil de fazer e testar do que todos os argumentos acadêmicos sobre como a troca não é necessária. Mesmo que não seja a solução, você pode aprender algo com isso. Aposto que o teste mem=16G será bem-sucedido sem pânico/crash.
(5) As chances são de que o rsync esteja atingindo a troca, mas acontece muito rápido para ver com o top antes que o OOM entre em ação e mate o rsync. No momento em que o rsync chega a 32 GB, outros processos já foram forçados a trocar, principalmente se estiverem ociosos. Talvez uma combinação de "livre" e "top" lhe dê uma imagem melhor.
(6) Depois que o rsync é morto, leva tempo para liberar o mmap para o FS. Não é rápido o suficiente para OOM e começa a matar outras coisas [algumas são obviamente de missão crítica]. Ou seja, o mmap flush e o OOM estão correndo. Ou, OOM tem um bug. Caso contrário, não haveria um acidente.
(7) Na minha experiência, uma vez que um sistema "atinge a parede da memória", o Linux leva muito tempo para se recuperar totalmente. E, às vezes, ele nunca se recupera adequadamente e a única maneira de limpá-lo é reinicializando. Por exemplo, tenho 12 GB de RAM. Quando executo um trabalho que usa 40 GB de memória [tenho 120 GB de swap para acomodar trabalhos grandes] e o mato, leva cerca de 10 minutos para o sistema retornar à capacidade de resposta normal [com a luz do disco acesa o tempo todo] .
(8) Execute o rsync sem opções. Isso vai funcionar. Obtenha um exemplo de linha de base para trabalhar. Em seguida, adicione de volta --inplace e teste novamente. Em seguida, faça --append-verify em vez disso. Então, experimente os dois. Descubra qual opção obtém o rsync fazendo o enorme mmap. Em seguida, decida se você pode viver sem ele. Se --inplace for o culpado, isso é óbvio, já que você tem bastante espaço em disco. Se você precisar ter a opção, precisará obter o espaço de troca para acomodar o malloc/mmap que o rsync fará.
SEGUNDA ATUALIZAÇÃO:
Por favor, faça o mem= e os testes de arquivos menores acima.
As questões centrais: Por que o rsync é eliminado pelo OOM? Quem/o que é mastigar memória?
Eu li [mas esqueci] sobre o sistema ser de 32 bits. Portanto, concordo que o rsync pode não ser diretamente responsável (via malloc/mmap - glibc implementa grandes mallocs por meio de mmaps anônimos/privados) e a falha da página mmap do rsync apenas aciona o OOM por coincidência. Em seguida, o OOM calcula a memória total consumida pelo rsync direta e indiretamente [cache FS, buffers de soquete, etc.] e decide que é o principal candidato. Portanto, monitorar o uso total da memória pode ser útil. Eu suspeito que se arrasta na mesma taxa que a transferência de arquivos. Obviamente, não deveria.
Algumas coisas que você pode monitorar em /proc ou /proc/rsync_pid por meio de um script perl ou python em um loop rápido [um script bash provavelmente não será rápido o suficiente para o evento de fim do mundo] que pode monitorar todos as seguintes várias centenas de vezes/seg. Você pode executar isso com uma prioridade mais alta que o rsync, para que ele se mantenha na RAM e em execução, para que você possa monitorar as coisas antes da falha e, com sorte, durante o OOM, para que você possa ver por que o OOM enlouquece:
/proc/meminfo -- para obter mais informações sobre o uso de troca no "ponto de impacto". Na verdade, obter o número final de quanta RAM está sendo usada no total pode ser mais útil. Embora top forneça isso, pode não ser rápido o suficiente para mostrar o estado do universo imediatamente antes do "big bang" (por exemplo, os últimos 10 milissegundos)
/proc/rsync_pid/fd directory. Reading the symlinks will allow you to identify which fd is opened on the target file (e.g. readlink of /proc/rsync_pid/fd/5 --> target_file). This probably only needs to be done once to get the fd number [it should stay fixed]
Knowing the fd number, look at /proc/rsync_pid/fdinfo/fd. It's a text file that looks like:
Monitoring the "pos" value can be helpful as the "last file position" may be useful. If you do several tests with varying sizes and mem= options, does the last file position track any of these [and how]? The usual suspect: file position == available RAM
But, the simplest way is to start with "rsync local_file server:remote_file" and verify that works. You may be able to get similar [but faster] results by doing "ssh server rsync file_a file_b" [you'd need to create a 50GB file_a first]. A simple way to create file_a is scp local_system:original_file server:file_a and this might be interesting unto itself (e.g. does this work when the rsync crashes? If scp works, but rsync fails, this points to rsync. If scp fails, this points to something else like the NIC driver). Doing the ssh rsync also takes the NIC out of the equation, which may be helpful. If that hoses the system, then something is really wrong. If it succeeds, [as I've mentioned] start adding back the options one-by-one.
I hate to belabor the point, but adding some swap via swap-to-file may change/delay the crash behavior and may be useful as a diagnostic tool. If adding, say 16GB, of swap delays the crash [as measured by memory usage or target file position] from 32GB to 46GB, then that will say something.
It may not be any particular process, but an errant kernel driver that is chewing memory. The kernel's internal vmalloc allocates stuff and it can be swapped out. IIRC, it's not bound by addressibility under all circumstances.
Clearly, the OOM is getting confused/panicked. That is, it kills rsync, but doesn't see the memory freed up in a timely manner and goes looking for other victims. Some of them are probably critical to system operation.
malloc/mmap aside, this could be caused by unflushed FS cache that takes a long time (e.g. with 30GB of unflushed data, assuming a disk rate of 300 MB/sec, it might take 100 seconds to flush it). Even at that rate, OOM may be too impatient. Or, OOM killing rsync doesn't start the FS flush fast enough [or at all]. Or FS flush happens fast enough, but it has a "lazy" release of the pages back to the free pool. There are some /proc options you can set to control FS cache behavior [I can't remember what they are].
Try booting with mem=4G or some other small number. This might cut back on the FS cache and shorten its flush time to keep OOM from looking for other things to kill (e.g. flush time is reduced from 100 sec to < 1 sec). It might also unmask an OOM bug that can't handle physical ram > 4GB on a 32 bit system or some such.
Also, an important point: Run as non-root. Root users are never expected to chew resources, so they are given more forgiving limits (e.g. 99% of memory vs 95% for non-root users). This may explain why OOM is in such a state. Also, this gives OOM et. al. more headroom to do its job of reclaiming memory.
clamd? Parece que você está usando o ClamAV e tem a verificação de acesso habilitada, onde o mecanismo antivírus tenta verificar arquivos abertos em busca de vírus, carregando na memória todo o conteúdo de cada arquivo aberto por qualquer outro processo .
Dependendo da sua postura de segurança e da necessidade dessa transferência, você deve avaliar a desativação da varredura no acesso do ClamAV enquanto realiza a transferência.