Pracuji s klastrovým strojem běžícím pod linuxem.
Mám skript shellu, který používá mpirun
k odeslání mých úloh do clusteru. Ve stejném skriptu si mohu vybrat počet uzlů, které budou přiřazeny k úloze. Zatím je to dobré.
Můj problém nastává poté, co:když zadám několik úloh, všechny fungují dobře, ale když naplním kapacitu uzlů, některé z odeslaných úloh nebudou dokončeny. V důsledku toho mám podezření, že dostupná paměť v clusteru není dostatečná k tomu, aby se vypořádala se všemi mými úlohami současně.
To je důvod, proč chci zkontrolovat využití paměti u každé úlohy v průběhu času, poté použiji qstat -f
příkaz, ale zobrazuje spoustu věcí a většině z nich nerozumím.
Takže zde je moje otázka: V ukázkovém výstupu qstat -f
níže, můžeme vidět dva typy paměti:mem
a vmem
. Zajímalo by mě, jaký je rozdíl mezi těmito dvěma a jaké je skutečné množství použité paměti?
resources_used.cput = 00:21:04
resources_used.mem = 2099860kb
resources_used.vmem = 40505676kb
resources_used.walltime = 00:21:08
Navíc bych ocenil jakýkoli odkaz, kde je podrobně uveden výstup tohoto příkazu. Zkoušel jsem man qstat, ale nezabývá se podrobnostmi každého vráceného řádku.
Přijatá odpověď:
Abychom to odstranili ze seznamu otevřených otázek a poskytli zjednodušenou odpověď (výše uvedený komentář Goldilockse a dokumentace qstat předpokládá hlubší obeznámenost se systémy):
Odpověď závisí na tom, co přesně máte na mysli pod pojmem „skutečné množství použité paměti“ (a později ve vaší odpovědi na komentář:„použitý prostor RAM“).
„mem“ je množství paměti RAM stroje, které bylo využito vaší prací, přesněji pozorované maximální využití. Nejedná se nutně o skutečné špičkové využití, protože systém monitorování úloh ve vašem clusteru může využití kontrolovat jen tak často. Vaše úloha se možná snaží využít mnohem více paměti, než je zde uvedeno, ale systém nedává této úloze více paměti, například proto, že není k dispozici více paměti nebo jiné úlohy běžící na stejném počítači soutěží o paměť. Také mezipaměť systému souborů může být konkurencí pro RAM, pokud je zde velká aktivita souborů (I/O).
Související:Linux – Jakou aplikaci použít pro kalendář?„vmem“ je veličina, která souvisí s tím, jak moderní procesory spravují paměť. Opět je to špičková hodnota. Toto číslo může zahrnovat různé věci, ke kterým mají procesy přístup, jako jsou soubory mapované v paměti a odkládací prostor. Zahrnuje prostor, který proces přidělil, ale nikdy nevyužil, a proto může být poměrně velký. Pokud je číslo nízké, umožňuje vám dojít k závěru, že problém není s pamětí, ale pokud je vysoké, nevíte a musíte to dále prozkoumat. Některé aplikace alokují velké množství virtuální paměti, i když potřebují jen zlomek.