bup-memtest - instrukcja obsługi, opcje, przykłady poleceń


NAZWA

bup-memtest - przetestuj statystyki użycia pamięci bubu

STRESZCZENIE

bup memtest [options...]

OPIS

bup memtest otwiera listę indeksów pakietów w repozytorium bup, a następnie przeszukuje listę w poszukiwaniu serii nieistniejących obiektów, wyświetlając statystyki użycia pamięci po każdym cyklu.

Ze względu na sposób, w jaki działają systemy uniksowe, dane wyjściowe zwykle pokazują dużą (i niezmienną) wartość w kolumnie VmSize, ponieważ mapowanie plików indeksu w pierwszej kolejności zajmuje pewną ilość wirtualnej przestrzeni adresowej. Jednak to użycie pamięci wirtualnej jest całkowicie wirtualne; nie zajmuje żadnej pamięci RAM. Z biegiem czasu bup wykorzystuje części indeksów, które trzeba ładować z dysku, co powoduje wzrost w kolumnie VmRSS.

OPCJE

-n, --number=number

ustawić liczbę obiektów do wyszukania w każdym cyklu (tj. przed wydrukowaniem linii wyjścia)

-c, --cycles=cycles

ustawić liczbę cykli (tj. liczbę linii wyjścia po pierwszej). Pierwsza linia wyjścia to zawsze 0 (tj. linia bazowa przed wyszukiwaniem jakichkolwiek obiektów).

--ignore-midx

zignoruj wszelkie pliki .midx utworzone przez bup midx. Pozwala to porównać wydajność pamięci z użyciem midx i bez niego.

--existing

szukaj istniejących obiektów zamiast szukać przypadkowych nieistniejących. Może to znacznie wpłynąć na użycie pamięci i wydajność. Zauważ, że przez większość czasu bup save spędza większość czasu na wyszukiwaniu nieistniejących obiektów, ponieważ istniejące są prawdopodobnie w niezmodyfikowanych plikach, których i tak nie będziemy próbować tworzyć kopii zapasowych. Tak więc domyślne zachowanie dokładniej odzwierciedla rzeczywistą wydajność wzmocnienia. Ale i tak możesz chcieć skorzystać z tej opcji, aby upewnić się, że wyszukiwanie istniejących obiektów nie stało się znacznie gorsze niż wcześniej.

PRZYKŁADY

$ 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 

DYSKUSJA

Pierwszym celem podczas optymalizacji indeksowania bup jest utrzymanie rozsądnie niskiego VmRSS. Jednak w końcu może być konieczna zamiana wszystkich indeksów, po prostu dlatego, że szukasz wielu obiektów, a to spowoduje, że Twój RSS wzrośnie do wielkości VmSize.

Kluczowym słowem jest tutaj w końcu. Tak długo, jak VmRSS rośnie w miarę wolno, ilość aktywności na dysku spowodowanej dostępem do indeksów pakietów jest stosunkowo niewielka. Jeśli rośnie szybko, bup prawdopodobnie spędzi większość czasu na wymianie danych indeksu z dysku zamiast na wykonywaniu kopii zapasowej, więc kopie zapasowe będą działać bardzo wolno.

Celem bup memtest jest pokazanie, jak szybko rośnie zużycie pamięci, oraz pomoc w optymalizacji bup w celu lepszego wykorzystania pamięci. Jeśli masz problemy z pamięcią, możesz zostać poproszony o przesłanie danych wyjściowych programu bup memtest, aby pomóc w zdiagnozowaniu problemów.

Wskazówka: spróbuj użyć bup midx -a lub bup midx -f, aby sprawdzić, czy pomaga to zmniejszyć zużycie pamięci.

Ciekawostka: użycie pamięci indeksu w bup (lub git) jest tak naprawdę problemem tylko przy dodawaniu dużej liczby wcześniej niewidzianych obiektów. Dzieje się tak dlatego, że dla każdego obiektu musimy bezwzględnie potwierdzić, że nie ma go już w bazie danych, co wymaga od nas przeszukania wszystkich istniejących indeksów pakietów, aby upewnić się, że żaden z nich nie zawiera obiektu w pytanie. W bardziej oczywistym przypadku wyszukiwania obiektów, które nie istnieją, poszukiwane obiekty są zwykle w jakiś sposób powiązane, co oznacza, że prawdopodobnie wszystkie istnieją w niewielkiej liczbie plików pakietów, więc zużycie pamięci będzie ograniczone tylko do tych indeksów pliku packfile.

Ponieważ użytkownicy git zwykle nie dodają wielu plików za jednym razem, git tak naprawdę nie potrzebuje programu takiego jak bup midx. Z drugiej strony bup spędza większość czasu na tworzeniu kopii zapasowych plików, których wcześniej nie widział, więc jego wzorce wykorzystania pamięci są inne.

ZOBACZ TEŻ

bup-midx(1)

BUP

Część pakietu bu(1).

AUTORSKI

Avery Pennarun .