Open sawenzel opened 2 years ago
As a CVMFS user, here are things we've observed that adversely impact performance under high parallel load: 1) Using RHEL7-generation kernel rather than 8 or later. The older kernel just doesn't perform as well. Switching to libfuse version 3 may help too. 2) Heavy use of symlinks. CVMFS currently doesn't support kernel-caching of symlinks 3) Heavy use of statfs(), which can be an expensive operation
You might try gstack
ing or perf
ing the busy cvmfs processes to get a sense for where its time is going.
ALICE using a multi-process system for Monte Carlo GRID workflows. Processes are started from CVMFS, scheduled by some graph-scheduler.
When multiple such jobs land on the same server, a very high load is observed in CVFMS components (up to multiple cores). In principle this should not be the case since a limited set of executables is loaded and caching mechanism should be at work. Increasing our CVMFS cache size to 50GB has alleviated the problem slightly but not to a full satisfactory extend. Also, it seems that the cache size actually used is below 4GB.
Slides presented at recent workshop: https://indico.cern.ch/event/1079490/contributions/4939522/attachments/2506129/4306981/ALICE-CernVM.pdf
Starting processes repeatedly from CVMFS should be as fast (or close) as loading processes from local disc, when the cache size is sufficient.
We provide a self-sufficient version of a MC workflow, running in a CC7 container. The setup is provided here: https://cernbox.cern.ch/index.php/s/qCj54zBrB8m362L
Unpack the tar file and follow instructions in README. One job-slot needs 8cores, so best to run it on a server with many cores.