bup-memtest - tesztelje a memóriahasználati statisztikákat
bup memtest [options...]
A bup memtest megnyitja a csomagindexek listáját a bup-tárolóban, majd megkeresi a listában a nem létező objektumok sorozatát, és minden ciklus után memóriahasználati statisztikákat nyomtat.
A Unix rendszerek működése miatt a kimenet általában nagy (és változatlan) értéket mutat a VmSize oszlopban, mivel az indexfájlok leképezése elsősorban bizonyos mennyiségű virtuális címteret igényel. Ez a virtuális memóriahasználat azonban teljesen virtuális; nem veszi igénybe a RAM-ot. Idővel a bup felhasználja az indexek részeit, amelyeket lemezről kell betölteni, és ez okozza a VmRSS oszlop növekedését.
állítsa be a keresendő objektumok számát az egyes ciklusokban (azaz a kimeneti sor nyomtatása előtt)
állítsa be a ciklusok számát (azaz az első utáni kimeneti sorok számát). A kimenet első sora mindig 0 (azaz az alapvonal az objektumok keresése előtt).
figyelmen kívül hagyja a bup midx által létrehozott .midx fájlokat. Ez lehetővé teszi a memória teljesítményének összehasonlítását midx használatával és anélkül.
meglévő objektumok keresése a véletlenszerű, nem létezők keresése helyett. Ez nagymértékben befolyásolhatja a memóriahasználatot és a teljesítményt. Vegye figyelembe, hogy az idő nagy részében a bup mentés ideje nagy részét nem létező objektumok keresésével tölti, mivel a meglévők valószínűleg olyan módosítatlan fájlokban vannak, amelyekről amúgy sem próbálunk meg biztonsági másolatot készíteni. Így az alapértelmezett viselkedés pontosabban tükrözi a valós bup teljesítményt. De érdemes lehet erre a lehetőségre, hogy megbizonyosodjon arról, hogy a meglévő objektumok keresését nem tette sokkal rosszabbá, mint korábban.
$ bup memtest -n300 -c5
PackIdxList: using 1 index.
VmSize VmRSS VmData VmStk
0 20824 kB 4528 kB 1980 kB 84 kB
300 20828 kB 5828 kB 1984 kB 84 kB
600 20828 kB 6844 kB 1984 kB 84 kB
900 20828 kB 7836 kB 1984 kB 84 kB
1200 20828 kB 8736 kB 1984 kB 84 kB
1500 20828 kB 9452 kB 1984 kB 84 kB
$ bup memtest -n300 -c5 --ignore-midx
PackIdxList: using 361 indexes.
VmSize VmRSS VmData VmStk
0 27444 kB 6552 kB 2516 kB 84 kB
300 27448 kB 15832 kB 2520 kB 84 kB
600 27448 kB 17220 kB 2520 kB 84 kB
900 27448 kB 18012 kB 2520 kB 84 kB
1200 27448 kB 18388 kB 2520 kB 84 kB
1500 27448 kB 18556 kB 2520 kB 84 kB A bup indexelés optimalizálásakor az első cél a VmRSS ésszerűen alacsony szinten tartása. Előfordulhat azonban, hogy végül az összes indexet fel kell cserélni, egyszerűen azért, mert sok objektumot keres, és emiatt az RSS-je végül a VmSize méretére nő.
A kulcsszó itt az végül. Amíg a VmRSS ésszerűen lassan növekszik, a csomagindexek elérése által okozott lemeztevékenység meglehetősen kicsi. Ha gyorsan növekszik, a bup valószínűleg ideje nagy részét az indexadatok lemezről való cseréjével tölti, ahelyett, hogy ténylegesen futtatná a biztonsági mentést, így a biztonsági mentések nagyon lassan futnak.
A bup memtest célja, hogy képet adjon arról, hogy milyen gyorsan növekszik a memóriahasználata, és hogy segítsen optimalizálni a bup-ot a jobb memóriahasználat érdekében. Ha memóriaproblémái vannak, előfordulhat, hogy a rendszer felkéri a bup memtest kimenetének elküldésére, hogy segítsen diagnosztizálni a problémákat.
Tipp: próbálja meg a bup midx -a vagy a bup midx -f parancsot használni, hogy megnézze, segít-e csökkenteni a memóriahasználatot.
Apróságok: a bup (vagy git) indexmemóriahasználata csak akkor jelent problémát, ha nagyszámú, korábban nem látott objektumot adunk hozzá. Ennek az az oka, hogy minden egyes objektum esetében feltétlenül meg kell győződnünk arról, hogy még nincs benne az adatbázisban, amihez meg kell keresnünk az összes meglévő csomagindexet, hogy megbizonyosodjunk arról, hogy egyik sem tartalmazza a kérdéses objektumot. A létező objektumok keresésének nyilvánvalóbb esetben a keresett objektumok általában valamilyen módon kapcsolódnak egymáshoz, ami azt jelenti, hogy valószínűleg mind kis számú csomagfájlban létezik, így a memóriahasználat csak azokra a csomagfájlindexekre lesz korlátozva.
Mivel a git felhasználók általában nem adnak hozzá sok fájlt egyetlen futással, a git-nek nincs igazán szüksége olyan programra, mint a bup midx. A bup viszont ideje nagy részét a korábban nem látott fájlok biztonsági mentésével tölti, így a memóriahasználati szokásai eltérőek.
bup-midx(1)
A bup(1) programcsomag része.
Avery Pennarun