"swap cache" из vmstat против "SwapCached" из /proc/meminfo

Я бы попробовал протестировать оборудование Wi-Fi с уже установленным DVD Ubuntu и Windows 10. Если сбой наблюдается в Ubuntu и Windows, это указывает на проблему с оборудованием. Если Wi-Fi работает как в Windows, так и в Ubuntu, то, скорее всего, это проблема Mint. В качестве альтернативы можно использовать Edimax USB Wifi за 10 долларов.

2
23.07.2016, 03:57
2 ответа

В vmstat поле cache представляет собой сумму полей cat /proc/meminfo Cached и Плита.

  • Это означает, что это примерно файловый кеш, плюс кеш inode, плюс кеш каталогов, плюс кеш для дополнительных объектов.
  • То же поле называется swap cache в vmstat -s.
  • Поле не имеет ничего, ноль, ноль общего со свопом. Ошибочное название, как это часто бывает.
  • Чтобы вычислить это из полей cat /proc/vmstat, используйте:

кеш подкачки = nr_file_page + nr_slab_reclaimable + nr_slab_unreclaimable - meminfo_SwapCached

Глядя на /proc/meminfo , поле SwapCached не имеет отношения; это не имеет ничего общего с каким-либо дисковым кешем или кеш-памятью. Это то, сколько свопа также присутствует в чистых страницах памяти.

Кажется, единственный счетчик, который смешивает файловый кеш с свопом, — это nr_file_page (он рассматривает своп как любой другой «кэшированный» файл; эта терминология полностью несовместима с другими счетчиками/инструментами).

2
27.01.2020, 22:11

Есть две команды и два файла.

]# free -V; vmstat -V
free    from procps-ng 3.3.15
vmstat  from procps-ng 3.3.15

Процедура -Файлы:meminfoиvmstat

На справочной странице Free объясняется, что такое поля meminfo. Некоторые из этих полей также вычисляются косвенно.

vmstatдобавляет только некоторые поля /proc/vmstat.

/proc/vmstatимеет более систематизированную (и более длинную )структуру. Вот четыре строки, где упоминается этот таинственный pagecache

nr_anon_pages   212687
nr_mapped        70247
nr_file_pages   887005
nr_dirty            64

Теперь эти строки очень слабые по сравнению со списком enum в mmzone.h с комментариями:

NR_ANON_MAPPED, /* Mapped anonymous pages */
NR_FILE_MAPPED, /* pagecache pages mapped into pagetables. only modified from process context */
NR_FILE_PAGES,
NR_FILE_DIRTY,

(На первое место выходят 4 строчки АНОН и ФАЙЛЫ в сочетании с АКТИВНЫМИ и НЕАКТИВНЫМИ)


Итак, ваш второй — это не команда, а содержимое файла proc, на которое полагаются команды.


fs/proc/meminfo.c:

    cached = global_node_page_state(NR_FILE_PAGES) -
                    total_swapcache_pages() - i.bufferram;
    if (cached < 0)
            cached = 0;

Это показывает, что собственного «кэшированного» счетчика нет, и его необходимо проверить на работоспособность. Это в основном все "файловые страницы", активные или неактивные, с некоторыми исправлениями.

i.buffersснова добавляется в поле «бафф/кеш»free

Эта часть (содержимого /proc/meminfo )показывает, как значения собираются вместе. i— это структура sysinfo. cached и available рассчитываются непосредственно перед этим. Массив pages[] очень похож на /proc/vmstat, также Mlocked с этим вызовом страницы зоны.

    show_val_kb(m, "MemTotal:       ", i.totalram);
    show_val_kb(m, "MemFree:        ", i.freeram);
    show_val_kb(m, "MemAvailable:   ", available);
    show_val_kb(m, "Buffers:        ", i.bufferram);
    show_val_kb(m, "Cached:         ", cached);
    show_val_kb(m, "SwapCached:     ", total_swapcache_pages());
    show_val_kb(m, "Active:         ", pages[LRU_ACTIVE_ANON] +
                                       pages[LRU_ACTIVE_FILE]);
    show_val_kb(m, "Inactive:       ", pages[LRU_INACTIVE_ANON] +
                                       pages[LRU_INACTIVE_FILE]);
    show_val_kb(m, "Active(anon):   ", pages[LRU_ACTIVE_ANON]);
    show_val_kb(m, "Inactive(anon): ", pages[LRU_INACTIVE_ANON]);
    show_val_kb(m, "Active(file):   ", pages[LRU_ACTIVE_FILE]);
    show_val_kb(m, "Inactive(file): ", pages[LRU_INACTIVE_FILE]);
    show_val_kb(m, "Unevictable:    ", pages[LRU_UNEVICTABLE]);
    show_val_kb(m, "Mlocked:        ", global_zone_page_state(NR_MLOCK));

кеш подкачки это то, что man free называет кешем:

кэш:Память, используемая кэшем страниц и slabs(Кэшируется и SReclaimable в /proc/meminfo)

Из-за упрощения (, см. выше):

cached = NR_FILE_PAGES - total_swapcache_pages()

...есть интересная связь с SwapCached. Если бы только имена были менее запутанными.


Что такое кэш подкачки для файлов на диске,SwapCached предназначен для страниц ANON на устройстве подкачки. (Я надеюсь, что это имеет смысл/не совсем неправильно)

2
07.04.2020, 18:23

Теги

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