Bonjour,
J'aimerais améliorer ma performance concernant la mémoire utilisé pour les jobs, laquelle comme vous verrez ci-dessous n'est pas au top ! :-/
SLURM Job Efficiency:
Time [--------------------] 1 %
CPU [!!------------------] 12 %
Mem [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!] 280 %
Je cherche une commande, similaire à
sacct
mais pour les jobs finis,ou arrêtés, pour voir ce qui était vraiment demandé par notre commande/outil, et comparer avec celle que l'on a déclaré à slurm pour pouvoir la corriger (augmenter, diminuer) selon les besoins.
Ceci serait bien d'avoir aussi pour les sessions JupyterLab et R-studio de la plateforme "OnDemand" pour mieux adapter ce que l'on demand à l'ouverture d une nouvelle session.
Bonjour,
La réponse est reportseff
:
module load reportseff
reportseff
Une documentation est disponible pour contrôler les ressources et leur bon usage et notamment avec reportseff
:
https://ifb-elixirfr.gitlab.io/cluster/doc/slurm/slurm_efficiency/
Cela prends en compte n'importe quel job (dont ceux lancés par ondemand: JupyterLab/RStudio/...).
Dites-nous si la documentation n'est pas claire ou si il manque des infos.
PS: Des valeurs renvoyées pour la mémoire (par sacct ou status_bar) pour certains de vos jobs semblent incohérentes. Faut qu'on creuse un peu...
merci beacoup, je vais le lire !
Bonjour,
en fait le reportseff
ne donne pas l'info précis de la mémoire utilisé et de la mémoire réservé. C'est ça qu'il me faudrait pour mieux comprendre si je demande 30,ou 20GB à la prochaine session.
Pour ma dernière session JupyterLab par exemple, où j'avais des erreurs de Serveur pendant les calculs de certaines commandes, le rapport me donne :
$ reportseff 42650432 --format +reqmem,reqcpus
JobID State Elapsed TimeEff CPUEff MemEff ReqMem ReqCPUS
42650432 TIMEOUT 05:00:05 100.0% --- 52.6% 30G 6
52% est bien comme efficacité,mais je suis pas sûre de comprendre ce que ça veut dire.
Est-ce que ça veut dire que ~15GB étaient utilisés des 30GB que j'ai demandé ?
Y-a-t-il un paramètre à visualiser à coté de ceux-ci ,comme "UsedMem" ?
Avec sacct
,j ai vu que l'on peut avoir des infos aussi, mais je trouve pas quel paramètre serait le bon parmi tous ceux-ci !
sacct -e
Account AdminComment AllocCPUS AllocNodes
AllocTRES AssocID AveCPU AveCPUFreq
AveDiskRead AveDiskWrite AvePages AveRSS
AveVMSize BlockID Cluster Comment
Constraints ConsumedEnergy ConsumedEnergyRaw Container
CPUTime CPUTimeRAW DBIndex DerivedExitCode
Elapsed ElapsedRaw Eligible End
ExitCode Extra FailedNode Flags
GID Group JobID JobIDRaw
JobName Layout Licenses MaxDiskRead
MaxDiskReadNode MaxDiskReadTask MaxDiskWrite MaxDiskWriteNode
MaxDiskWriteTask MaxPages MaxPagesNode MaxPagesTask
MaxRSS MaxRSSNode MaxRSSTask MaxVMSize
MaxVMSizeNode MaxVMSizeTask McsLabel MinCPU
MinCPUNode MinCPUTask NCPUS NNodes
NodeList NTasks Partition Planned
PlannedCPU PlannedCPURAW Priority QOS
QOSRAW Reason ReqCPUFreq ReqCPUFreqGov
ReqCPUFreqMax ReqCPUFreqMin ReqCPUS ReqMem
ReqNodes ReqTRES Reservation ReservationId
Start State Submit SubmitLine
Suspended SystemComment SystemCPU Timelimit
TimelimitRaw TotalCPU TRESUsageInAve TRESUsageInMax
TRESUsageInMaxNode TRESUsageInMaxTask TRESUsageInMin TRESUsageInMinNode
TRESUsageInMinTask TRESUsageInTot TRESUsageOutAve TRESUsageOutMax
TRESUsageOutMaxNode TRESUsageOutMaxTask TRESUsageOutMin TRESUsageOutMinNode
TRESUsageOutMinTask TRESUsageOutTot UID User
UserCPU WCKey WCKeyID WorkDir
52% est bien comme efficacité,mais je suis pas sûre de comprendre ce que ça veut dire.
Est-ce que ça veut dire que ~15GB étaient utilisés des 30GB que j'ai demandé ?
Oui c'est ça.
Y-a-t-il un paramètre à visualiser à coté de ceux-ci ,comme "UsedMem" ?
Vous pouvez utiliser MaxRSS
(Maximum resident set size)
$ reportseff 42650432 --format +reqmem,MaxRSS,reqcpus
JobID State Elapsed TimeEff CPUEff MemEff ReqMem MaxRSS ReqCPUS
42650432 TIMEOUT 05:00:05 100.0% --- 52.6% 30G 16531936K 6
30G demandé (ReqMem). 16531936K =~ 16G utilisé (MaxRSS). Soit 16/30 ~ 53% d'efficacité (MemEff).
1 « J'aime »