Получение информации об использовании памяти процесса от/proc/pid/smaps

С 7zip, необходимо выполнить команду дважды, однажды чтобы распаковать и снова извлечь. Формат файла tar является просто "комком" всего застрявшего вплотную. Затем целый файл tar сжат с помощью различных алгоритмов сжатия в примере bzip. В основном получающийся файл имеет два слоя. Когда Вы "извлекаете" bzip слой, Вы получаете файл tar, затем при извлечении файла tar, Вы получаете набор отдельных файлов.

7zip не обрабатывает несколько слоев сразу, хотя это может обработать оба слоя:

7z x foo.tar.bz2
7z x foo.tar

На самом деле стандартные инструменты Unix работают тот же путь:

bunzip2 foo.tar.bz2
tar xf foo.tar

Однако Unix tar команда имеет удобные функции, которые называют вторичные шаги сжатия и распаковки с помощью другой программы прежде чем/после того, как она обрабатывает часть tar. В основном -j вызовы аргумента bzip2/bunzip2, Вы просто не видите второй шаг. Аналогично -z будет звонить gzip/gunzip, и т.д.

47
20.02.2013, 02:51
1 ответ

Чистые страницы являются страницами, которые не были изменены, так как они были отображены (обычно, текстовые разделы из общих библиотек только читаются из диска (когда необходимый), никогда изменяемый, таким образом, они будут на общих, чистых страницах).
Грязные страницы являются страницами, которые не являются чистыми (т.е. были изменены).

Частные страницы доступны только тому процессу, поделившиеся страницы отображаются другим processes*.

RSS является общим количеством страниц, поделившихся или нет, в настоящее время отображаемый в процесс. Так Shared_Clean + Shared_Dirty была бы общая часть RSS (т.е. часть RSS, который также отображается в другие процессы), и Private_Clean + Private_Dirty половой орган RSS (т.е. только отображенный в этом процессе).

PSS (пропорциональный размер доли) - как Вы описываете. Частным страницам подводят итог, как, и размер каждого общего отображения разделен на количество процессов, которые совместно используют его.
Таким образом, если бы процесс имел 100k частные страницы, 500k страницы, поделившиеся с еще одним процессом и 500k, совместно использованным с четырьмя другими процессами, то PSS был бы:

100k + (500k / 2) + (500k / 5) = 450k

Дополнительные материалы для чтения:

Относительно сумм всего процесса:

  • RSS может быть (приблизительно +) получен путем подведения итогов Rss: записи в smaps (Вы не должны складывать общие/частные общие/грязные записи).

    awk '/Rss:/{ sum += $2 } END { print sum }' /proc/$$/smaps
    
  • Можно подвести итог Pss: оценивает тот же путь, для получения глобальным процессом PSS.
  • USS в не сообщают smaps, но действительно, это - сумма частных отображений, таким образом, можно получить его то же слишком

*Обратите внимание, что "совместно используемая" страница считается как частное отображение, пока она на самом деле не совместно используется. т.е. если существует только один процесс в настоящее время с помощью libfoo, текстовый раздел той библиотеки появится в частных отображениях процесса. Это будет считаться в общих отображениях (и удаляться из частных), только, если/когда другой процесс начнет пользоваться той библиотекой.
Значения +The не складывают точно для всех процессов. Не абсолютно уверенный, почему... прошу прощения.

51
27.01.2020, 19:34
  • 1
    Спасибо за большой ответ. Цените его. Я прочитал статью LWM, и это вдохновило меня, спрашивают еще немного вопросов, таким образом, я добавил их к своему вопросу выше. –  Ankur Agarwal 04.03.2012, 23:01
  • 2
    Здорово! это очень очень полезно!! –  camino 30.03.2012, 09:01
  • 3
    я все еще смущен shared_dirty - является грязной природой этого препятствующего тому, чтобы он был совместно использован все еще? –  Kevin 18.06.2013, 02:40
  • 4
    @Kevin: если бы они не были совместно использованы, то они не считались бы в Shared_Dirty - Вы могли разъяснить свой вопрос? (en.wikipedia.org/wiki/Sneakernet) –  Mat 18.06.2013, 07:26
  • 5
    грязные средства, измененные от процесса orig., правильно? который не является этим, как это идет от того, чтобы быть совместно использованным до того, чтобы быть локальным? –  Kevin 19.06.2013, 07:43

Теги

Похожие вопросы