Есть ли способ узнать размер кеша L1, L2, L3 и оперативной памяти в Ubuntu?
Любая команда терминала или файлы, которые я мог бы изучить?
linux
ubuntu
operating-systems
user3692521
источник
источник
Ответы:
Информация о процессоре
Используйте команду lscpu :
Перечисленная информация относится к ядру процессора.
Информация о памяти
Есть свободная команда (-h дает результаты в удобочитаемой форме, т.е. GiB, а не байты):
источник
Это даст вам информацию о вашем кеше. Обозначение сокета скажет вам, на какой кеш ссылается данный раздел.
Для оперативной памяти есть пара вещей, на которые нужно обратить внимание, но meminfo должен это сделать. Я использовал grep здесь, чтобы показать только total / free, но вы можете использовать less или cat, чтобы увидеть все это. Он показывает гораздо больше информации об объеме памяти и использовании, чем просто размер.
источник
Основываясь на ответе jkabrams с помощью следующей команды и отфильтровывая из нее «кеш», каждый элемент кеша вам будет показан.
и ОЗУ:
Для получения дополнительной информации об оперативной памяти, процессах и т. Д. Вы можете использовать htop в своем дистрибутиве. Установите это так на Ubuntu.
источник
sysfs
дает:
getconf
дает:
Или для одного уровня:
Крутая особенность этого интерфейса в том, что он является просто оболочкой для функции POSIX
sysconf
C (аргументы кэша не являются расширениями POSIX), и поэтому его можно использовать и из кода C.Протестировано в Ubuntu 16.04.
инструкция CPUID x86
Инструкция CPUID x86 также предлагает информацию о кеше, и доступ к ней может быть получен непосредственно пользователем: https://en.wikipedia.org/wiki/CPUID
Glibc, кажется, использует этот метод для x86. Я не подтвердил пошаговую отладку / трассировку инструкций, но источник для 2.28
sysdeps/x86/cacheinfo.c
делает это:TODO создать минимальный пример C, ленивый сейчас, по адресу: /programming/14283171/how-to-receive-l1-l2-l3-cache-size-using-cpuid-instruction-in-x86
ARM также имеет механизм, определяемый архитектурой для определения размеров кэша через регистры, такие как регистр идентификатора размера кэша (CCSIDR), см. Руководство для программистов ARMv8 11.6 «Обнаружение кэша» для обзора.
источник