Назад | Перейти на главную страницу

бесплатные и htop сообщают совершенно разные числа

См. Следующий снимок экрана:

"Общий" объем памяти составляет 8 ГБ обеими htop и free, но пока free сообщает, что "использовано" только 2,7 ГБ, htop сообщает, что используется 7,53 ГБ. free сообщает, что 5 ГБ - это буферы / кеш, а htop сообщает об этом как о 100 МБ.

думаю htop здесь правильно, потому что система медленная и kswapd0 имеет высокую загрузку процессора.

В чем причина этого несоответствия?

https://www.linuxatemyram.com/

Классическая путаница в отношении кэширования и использования. htop считает кешированные как использованные, но free не является. Поскольку это Linux, прочтите /proc/meminfo сами и посмотрите, как счетчики соотносятся друг с другом.

Изменить: вы спросили конкретно о разнице в кешировании.

свободный от procps, по-видимому, делает кеш страницы плюс восстанавливаемый блок. Из proc / sysinfo.c

  kb_main_cached = kb_page_cache + kb_slab_reclaimable;

htop - это страничный кеш плюс освобождение slab минус разделяемая память. linux / LinuxProcessList.c

   this->cachedMem = this->cachedMem + sreclaimable - shmem;

Честно говоря, на современном Linux я бы посмотрел на MemAvailable и некоторые другие счетчики напрямую в / proc / meminfo. Если бы меня волновали числа.


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


Вялое и медленное время отклика могло быть чем угодно. Ограничения на количество операций ввода-вывода в секунду для хранилища или время отклика, страницы памяти из-за медленного хранилища, высокой загрузки ЦП (возможно, не в тот момент, когда вы сделали этот снимок экрана), медленной сети, плохо написанных приложений и т. Д.

Определите количественно, что происходит медленно и в каком объеме. У вас работает много приложений: μTorrent Server, mysql, mongo, plex, некоторые другие контейнеры. Включите журналы медленных запросов. Профильные приложения. Зарегистрируйте все возможные метрики производительности в базе данных временных рядов и посмотрите на графики.