Estou enfrentando uma queda significativa de desempenho ao usar o "rsync" para copiar arquivos pela rede de dentro de um contêiner ou cgroup com limites de memória no Oracle Linux 9.2. O problema ocorre com o Red Hat Compatible Kernel (RHCK) 5.14.0-284.11.1.el9_2.x86_64, mas não com o Unbreakable Enterprise Kernel (UEK) 5.15.0-101.103.2.1.el9uek.x86_64.
Detalhes: Configuração: Oracle Linux 9.2 com contêineres/cgroups com limites de memória. Problema: A velocidade de cópia de arquivos pela rede cai drasticamente quando os limites de memória são atingidos, especialmente quando o cache de páginas (arquivos inativos) fica cheio. Testes:
- Usando "rsync" de dentro de um contêiner ou um cgroup para copiar dados de uma fonte remota.
- Utilizando a replicação de dados PostgreSQL "pg_basebackup" entre dois contêineres PG (Líder vs. Réplica). Resultados:
- As altas velocidades iniciais (~100 MBps) caem significativamente (para ~1 MBps) quando os limites de memória são atingidos.
Comandos para reproduzir:
Crie um cgroup com limite de memória e execute o rsync: sudo systemd-run --scope --property=MemoryMax=1G rsync -av --progress rsync://<source_ip>/files /destination_path
Teste com drop_caches no sistema operacional de hospedagem durante rsync lento: free && sync && echo 3 > /proc/sys/vm/drop_caches && free Após o cache ser descartado, o rsync fica rápido novamente até que o limite de MEM seja atingido novamente
Observações:
- Quando o limite de memória do contêiner é atingido, o cache de páginas (arquivos inativos) fica cheio, levando à degradação da largura de banda da rede.
- Isso afeta, por exemplo, a replicação do PostgreSQL, causando atraso e potencial perda de dados.
Alguém mais já passou por esse problema? Quaisquer dicas ou sugestões sobre como lidar com isso corretamente (ou talvez soluções alternativas) seriam muito apreciadas!