Связь между Linux / proc / meminfo и / sys / devices / system / node / nodex / meminfo - PullRequest
3 голосов
/ 18 января 2011

Я бы хотел получить количество «свободной памяти» на узел NUMA. При работе с целой машиной обычно выполняется синтаксический анализ / proc / meminfo, например, free (требуемое число: MemFree + Buffers + Cached). Также существуют / sys / devices / system / node / nodex / meminfo, которые, кажется, отображают числа для каждого узла NUMA. Кто-нибудь знает, как эти цифры могут быть соотнесены с содержанием / proc / meminfo? Моим тривиальным предположением будет суммирование некоторых чисел для всех узлов NUMA в системе, и результат будет равен некоторому числу в / proc / meminfo. Но до сих пор мне не удалось выяснить отношения, особенно для кэшей страниц.

1 Ответ

2 голосов
/ 19 января 2011

Код для proc находится в fs/proc/meminfo.c, для файлов sysfs - в drivers/base/node.c.Сравнение их может дать вам некоторые подсказки.

Обратите внимание, что вы, вероятно, никогда не получите сложения чисел на 100%, потому что вы не можете атомарно прочитать содержимое всех файлов, поэтому значения будут меняться, покавы читаете их.

Кажется также, что во всех методах ОЗУ имеется несоответствие, сообщаемое обоими методами.Одним из объяснений этого является то, что free_init_mem, по-видимому, не осведомлен о NUMA и увеличивает total_ram_pages, но не ведет учет NUMA.

...