Produc date (fișiere de 100 GB) care sunt în sfârșit copiate pe un server prin NFS v4.2, pe o rețea de 10 GB. Aceste fișiere sunt stocate pe multe HDD-uri, cu formatare XFS (o copie per unitate țintă).
Când se execută sarcinile de copiere:
- Există o utilizare uriașă a memoriei pe client (ar putea fi mai mult de 64 GB, este nevoie de cât mai multă memorie).
- Dar aproape niciun ram nu este folosit pe server.
Aș dori să reduc utilizarea memoriei clienților, deoarece aceștia produc în mod continuu date și îi încetinește. Dimpotrivă, serverul este în principal nefolosit.
Bănuiesc că, deoarece HDD-urile sunt încetinite pe server, clientul tamponează cât mai multe date pentru a face copia mai puțin blocată. Nu pot schimba configurația hardware.
Există vreo modalitate de a forța serverul să memoreze mai multe date în cache?
Aș prefera să prioritizez utilizarea memoriei serverului decât a memoriei client.
Configurația NFS:
10.0.3.1:/ /mnt/field nfs nfsvers=4.2,noatime,nodiratime,_netdev,noauto,x-systemd.automount,x-systemd.mount-timeout=10 0 0
/etc/exports
:
/mnt 10.0.0.0/16(rw,async,fsid=0,no_subtree_check,crossmnt)
Configurare NIC pe server:
MTU 9000
rinbuffer tx 512, rx 1024
Configurație NIC pe client:
MTU 9000
rinbuffer tx 1024, rx 512
Editați | ×:
După cum a fost solicitat, /proc/meminfo:
Client server ------ -------------------------
Un monitorix al utilizării memoriei pe acest client:
Utilizarea rețelei:
Notă: Clientul folosește un tmpfs mare (100 GB) pentru a calcula. Cred că acest tmpfs nu este niciodată scăzut din numărul de memorie disponibilă.
Edit 2:
Corelația dintre utilizarea rețelei și a memoriei este mai evidentă pe celălalt client (ar fi trebuit să încep cu asta). Acest client nu folosește niciun tmpfs.