Сколько RAM ядро использует?

С csplit от GNU coreutils (не встроил Linux, Cygwin):

csplit -f entry -b '%d.txt' entry.txt '/^\[ .* \]$/' '{*}'

Вы закончите с дополнительным пустым файлом entry0.txt (содержащий часть перед первым заголовком).

Стандарту csplit недостает {*} неопределенный повторитель и -b опция указать суффиксный формат, таким образом, в других системах необходимо будет считать количество разделов сначала и переименовать выходные файлы впоследствии.

csplit -f entry -n 9 entry.txt '/^\[ .* \]$/' "{$(egrep -c '^'\[ .* \]$' 

47
13.04.2017, 15:45
3 ответа

Ядро является чем-то вроде неправильного употребления. Ядро Linux состоит из нескольких proceses/threads + модули (lsmod) таким образом для получения полного изображения необходимо было бы посмотреть на целый шар и не только единственный компонент.

Шоу шахты Incidentally slabtop:

 Active / Total Size (% used)       : 173428.30K / 204497.61K (84.8%)

Страница справочника для slabtop также сказал следующее:

slabtop статистический заголовок отслеживает, сколько байтов плит используется и он не мера физической памяти. Поле 'Slab' в/proc/meminfo файле отслеживает информацию об используемой физической памяти плиты.

Отбрасывание кэшей

При отбрасывании моих кэшей, поскольку @derobert предложенный в комментариях под вопросом делает следующее для меня:

$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
$

 Active / Total Size (% used)       : 61858.78K / 90524.77K (68.3%)

Отправка 3 делает следующее: свободный pagecache, dentries и inodes. Я обсуждаю это больше в этом названные Вопросы и ответы U&L: Есть ли какие-либо пути или инструменты для дампа кэша памяти и буфера?". Так 110 МБ моего пространства использовался, просто поддержав информацию относительно pagecache, dentries и inodes.

Дополнительная информация

  • Если Вам интересно, я нашел это сообщение в блоге, которое обсуждает slabtop в немного большем количестве деталей. Это названо: команда Linux дня: slabtop.
  • Кэш Плиты обсужден более подробно здесь на Википедию, названную: выделение Плиты.

Таким образом, сколько использует RAM мое Ядро?

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

Плита

Мы можем получить снимок использования Плиты с помощью этой техники. По существу мы можем вытянуть эту информацию из /proc/meminfo.

$ grep Slab /proc/meminfo
Slab:             100728 kB

Модули

Также мы можем получить значение размера для модулей Ядра (неясный, является ли это их размером от на диске или когда в RAM) путем получения по запросу этих значений от /proc/modules:

$ awk '{print $1 " " $2 }' /proc/modules | head -5
cpufreq_powersave 1154
tcp_lp 2111
aesni_intel 12131
cryptd 7111
aes_x86_64 7758

Slabinfo

Большая часть деталей о ПЛИТЕ доступна в этой proc структуре, /proc/slabinfo:

$ less /proc/slabinfo | head -5
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
nf_conntrack_ffff8801f2b30000      0      0    320   25    2 : tunables    0    0    0 : slabdata      0      0      0
fuse_request         100    125    632   25    4 : tunables    0    0    0 : slabdata      5      5      0
fuse_inode            21     21    768   21    4 : tunables    0    0    0 : slabdata      1      1      0

Dmesg

Когда Ваши начальные загрузки системы там являются строкой, которая сообщает об использовании памяти ядра Linux сразу после того, как это загружается.

$ dmesg |grep Memory:
[    0.000000] Memory: 7970012k/9371648k available (4557k kernel code, 1192276k absent, 209360k reserved, 7251k data, 948k init)

Ссылки

40
27.01.2020, 19:34
  • 1
    Там должен так или иначе получить полное изображение? –  Gilles 23.10.2013, 22:09
  • 2
    @Gilles - сколько используемых памятей, правильно? Я, кажется, помню Q относительно этого прежде, Вы? –  slm♦ 23.10.2013, 22:10
  • 3
    @Gilles - Я думаю, что это близко к тому, о чем Вы спрашиваете: grep Slab /proc/meminfo. –  slm♦ 23.10.2013, 22:17
  • 4
    @Gilles - существует также это: /proc/slabinfo, который надеется быть источником для slabtop, таким образом, можно было вычислить суммы отсюда для более точного общего количества. –  slm♦ 23.10.2013, 22:23
  • 5
    /proc/modules более вероятно, будет загруженный размер модуля в памяти, поскольку дисковые модули обычно сжимаются (например, на Fedora 27 это - xz), я проверил tg3 Драйвер NIC, на размере диска (или сжатый или исходный размер файла) не подходит показ размера байта в /proc/modules. –  Terry Wang 12.12.2017, 03:00

Как насчет этого:

Active / Total Size (% used)       : 4709.24K / 5062.03K

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

Как derobert подсказки, ядро использует доступную память для кэширования, и это - многое из того, в чем Вы видите slabtop. В дополнение к кэшу файла это имеет отношение к совместно используемой памяти от процессов пространства пользователя, которая больше не используется. Ядро оставляет его там, пока или тот же материал не требуется снова, или иначе чему-то активно нужна RAM, в этом случае об этом забывают. Аналогия взяла бы книгу с полки и положила бы ее открытый для чтения на таблице: когда Вы сделаны, читая, можно оставить книгу открытой на таблице в случае, если необходимо посмотреть на нее снова.

8
27.01.2020, 19:34

На этом сервере RAM на 512 ГБ под управлением Солярис ядро использует 25 ГБ:

Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                    3210102             25078    5%
Anon                     15266226            119267   23%
Exec and libs               41457               323    0%
Page cache                3539331             27651    5%
Free (cachelist)         13799571            107809   21%
Free (freelist)          30093164            235102   46%

Total                    65949851            515233
Physical                 65927406            515057

Тот меньший имеет больше чем половину своей RAM, используемой ядром:

Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                    2149699             16794   52%
Anon                       517016              4039   13%
Exec and libs               15420               120    0%
Page cache                  21840               170    1%
Free (cachelist)             8768                68    0%
Free (freelist)           1404862             10975   34%

Total                     4117605             32168
Physical                  4096002             32000

Ничто для волнения о неиспользованная RAM является потраченной впустую RAM так или иначе.

4
27.01.2020, 19:34
  • 1
    Опишите, как Вы действительно достигали своего вывода. –  Maus 19.08.2015, 17:57
  • 2
    @Maus путем выполнения echo ::memstat | mdb -k на некотором Солярисе 10 рабочих серверов, которые предшествуют обновлению 10/09. –  jlliagre 19.08.2015, 18:09

Теги

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