Почему machine.slice отображается как использующий память, когда он не содержит никаких процессов?

Этот поток говорит о том, что можно запустить политику apt-cache . С этим и способность-F%p - отключать-колонки ищут ~U от здесь , вы можете легко соединить небольшой скрипт оболочки, чтобы проверить и напечатать для каждого пакета, который будет модернизирован,

aptitude -F%p --disable-columns search ~U | xargs apt-cache policy

Работы отлично для меня на Trisquel, если вы добавите, что к вашему ~/.bashrc как псевдоним, например

alias apt-wat='aptitude -F%p --disable-columns search ~U | xargs apt-cache policy'

у Вас есть своевольная команда cewl, позор, это печатает слишком много.

или если вы хотите увидеть, откуда взялся каждый установленный пакет с dpkg -l , что-то вроде

dpkg -l | awk '{print $2}' | xargs apt-cache policy

-121--145290-

Спасибо за обновление вопроса, 100% лучше.

Вы не упомянули, если значения в том, что вы называете "необычными" значениями, должны быть дублированы в выходных данных, я предполагаю, что нет.

Этот сценарий должен выполняться во всех версиях awk . Нет расширений GNU, протестировано с gawk --traditional . Я добавил дополнительные входные данные, чтобы проверить больше условий. При этом обрабатываются повторяющиеся записи на входе. Самая большая проблема, которую я предполагаю, будет состоять во вводе запятых, сценарий будет работать так, как указано, но выходной файл может иметь пустые поля и т. д.

Описание кода:

Массив recs индексируется конкатенацией первых трех полей. (Массивы в awk индексируются строками.) Каждый элемент массива содержит то, что называется "необычными" полями, разделенными запятыми.

Для каждой строки ввода клавиша содержит первые три поля. Цикл для проходит через остальные поля. Инструкция if проверяет, не сохранено ли поле для этого ключа. Если нет, то поле добавляется в конец записи, в зависимости от обстоятельств, к нему добавляется пробел или запятая.

В конце ввода (тег END ): Переход через клавиши к массиву recs, печать ключа и содержащихся в нем данных.

#!/bin/sh

awk '
    {
        key = $1 " " $2 " " $3;
        for (i = 4; i <= NF; i++) {
            if (recs[key] !~ "(^|,)"$i"(,|$)") {
                recs[key] = recs[key] (recs[key] ? "," : "") $i
            }
        }
    }
    END {
        for (key in recs) {
            print key " " recs[key]
        }
    }
' <

Вывод:

HWF CommonDomain stringeditor AdminServer,HelpPortalServer_1
HWF CommonDomain javatools AdminServer,AdminServer2,3AdminServer,HelpPortalServer_1,HelpPortalServer_2,3_HelpPortalServer_2
ABC CommonDomain resourcebundle AdminServer,HelpPortalServer_1

-121--195199-

параллельно --j 2 -- "sh script1" "sh script2" & tail -f log2

Выполняется параллельно... в фоновом режиме, а затем запускает хвост... .

Нажатие клавиши Ctrl-C на хвосте не повлияет на параллельные задания.

Если требуется вывести параллель на передний план, убейте хвост и введите fg . Для повторной отправки в фоновый режим (например, для повторного запуска tail ) нажмите Ctrl-Z и введите bg . Или вы можете убить его с помощью убить%%

Дополнительную информацию см. в документации по оболочке. например, если вы используете bash, запустите man bash и выполните поиск (all-caps) JOB CONTROL .

0
25.10.2018, 18:00
1 ответ

Esto no es un error. Aparentemente, la contabilidad de la memoria de cgroup incluye páginas de caché de disco que fueron utilizadas por los procesos. Si lo desea, puede solicitar descartar las páginas de caché que pertenecen a un cgroup usando force_empty.

Es posible que se pregunte acerca de las páginas de caché que utilizan varios cgroups.cgroup-v2.rst(el sucesor de la versión que estoy usando )nos dice:

A memory area is charged to the cgroup which instantiated it and stays charged to the cgroup until the area is released. Migrating a process to a different cgroup doesn't move the memory usages that it instantiated while in the previous cgroup to the new cgroup.

A memory area may be used by processes belonging to different cgroups. To which cgroup the area will be charged is in-deterministic; however, over time, the memory area is likely to end up in a cgroup which has enough memory allowance to avoid high reclaim pressure.

cgroup-v1/memory.txttambién dice que "las páginas están vinculadas a -memcg LRU exclusivamente", por lo que probablemente también funcione de manera similar a la descripción anterior. Es más difícil confiar en este documento, ya que comienza con un descargo de responsabilidad que dice que está "irremediablemente desactualizado y solicita una reescritura completa".

Es decir. force_emptysolicita eliminar todas estas páginas de inmediato. Si hay otro cgroup que también quiere usarlos, tendrá que volver a leerlos desde el disco.

4
28.01.2020, 02:23

Теги

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