bup-memtest - справочное руководство, опции, примеры команд


ИМЯ

bup-memtest - проверить статистику использования памяти

СИНТАКСИС

bup memtest [options...]

ОПИСАНИЕ

bup memtest открывает список индексов пакетов в вашем репозитории bup, затем ищет в списке ряд несуществующих объектов, печатая статистику использования памяти после каждого цикла.

Из-за того, как работают системы Unix, выходные данные обычно показывают большое (и неизменное) значение в столбце VmSize, потому что отображение индексных файлов в первую очередь требует определенного объема виртуального адресного пространства. Однако это использование виртуальной памяти полностью виртуально; он не занимает никакой вашей оперативной памяти. Со временем bup использует части индексов, которые необходимо загрузить с диска, и именно это вызывает увеличение столбца VmRSS.

ПАРАМЕТРЫ

-n, --number=number

установить количество объектов для поиска в течение каждого цикла (т.е. перед печатью строки вывода)

-c, --cycles=cycles

установить количество циклов (т.е. количество строк вывода после первой). Первая строка вывода всегда равна 0 (т. е. базовая линия перед поиском каких-либо объектов).

--ignore-midx

игнорировать любые файлы .midx, созданные bup midx. Это позволяет сравнить производительность памяти с использованием midx и без него.

--existing

поиск существующих объектов вместо поиска случайных несуществующих. Это может сильно повлиять на использование памяти и производительность. Обратите внимание, что в большинстве случаев bup save тратит большую часть своего времени на поиск несуществующих объектов, поскольку существующие, вероятно, находятся в неизмененных файлах, которые мы все равно не будем пытаться создавать резервными копиями. Таким образом, поведение по умолчанию более точно отражает реальную производительность bup. Но вам все равно может понадобиться эта опция, просто чтобы убедиться, что поиск существующих объектов не стал намного хуже, чем раньше.

ПРИМЕРЫ

$ 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 

ОБСУЖДЕНИЕ

При оптимизации индексации bup первая цель — удерживать VmRSS на достаточно низком уровне. Однако в конечном итоге может потребоваться поменять местами все индексы просто потому, что вы ищете много объектов, и это приведет к тому, что ваш RSS в конечном итоге вырастет до размера VmSize.

Ключевое слово здесь в конце концов. Пока VmRSS растет достаточно медленно, активность диска, вызванная доступом к пакетным индексам, достаточно мала. Если он растет быстро, bup, вероятно, будет тратить большую часть своего времени на подкачку данных индекса с диска, вместо фактического выполнения резервного копирования, поэтому резервное копирование будет выполняться очень медленно.

Цель bup memtest — дать вам представление о том, насколько быстро растет использование вашей памяти, и помочь в оптимизации bup для более эффективного использования памяти. Если у вас есть проблемы с памятью, вас могут попросить отправить вывод bup memtest, чтобы помочь диагностировать проблемы.

Совет: попробуйте использовать bup midx -a или bup midx -f, чтобы увидеть, помогает ли это уменьшить использование памяти.

Интересный факт: использование индексной памяти в bup (или git) является реальной проблемой только при добавлении большого количества ранее невидимых объектов. Это связано с тем, что для каждого объекта нам необходимо полностью подтвердить, что он еще не находится в базе данных, что требует от нас поиска по всем существующим индексам пакетов, чтобы убедиться, что ни один из них не содержит объект в базе данных. вопрос. В более очевидном случае поиска объектов, которые действительно существуют, искомые объекты обычно каким-то образом связаны между собой, что означает, что все они, вероятно, существуют в небольшом количестве пак-файлов, поэтому использование памяти будет ограничен только этими индексами пакфайлов.

Поскольку пользователи git обычно не добавляют много файлов за один запуск, git на самом деле не нуждается в такой программе, как bup midx. bup, с другой стороны, тратит большую часть своего времени на резервное копирование файлов, которые он раньше не видел, поэтому его модели использования памяти отличаются.

СМОТРИТЕ ТАКЖЕ

bup-midx(1)

БУП

Часть набора bup(1).

АВТОРЫ

Эйвери Пеннарун apenwarr@gmail.com.