- How to find the frequency and type of my current RAM?
- Как узнать общий объем физической памяти (RAM) в Linux
- 2. Команда free
- 3. Команда vmstat
- 4. Команда top
- 5. Утилита dmidecode
- 5.1. Установка dmidecode
- 5.2. Использование dmidecode
- 6. Виртуальный файл /proc/meminfo
- 7. Использование диспетчеров задач с графическим пользовательским интерфейсом
- 7.1. GNOME System Monitor
- 7.2. KSysGuard
- 8. Заключение
How to find the frequency and type of my current RAM?
It should, and it does for me: on my computer, two of the lines read «4GiB DIMM DDR3 Synchronous 1333 MHz (0.8 ns)» (corresponding to the two RAM slots where I have RAM installed). Did you look closely?
sudo lshw -C memory > info.txt Not sure, it won’t display on my terminal, but if I pipe it to a file it shows.
This did not display the frequency for me in Ubuntu 15.04. Likely hardware dependent. Solution by Henrique worked though.
Use the lshw command with the memory class:
$ sudo lshw -C memory # Some things about firmware and caches *-memory description: System Memory physical id: 13 slot: System board or motherboard size: 8GiB *-bank:0 description: DIMM [empty] product: [Empty] vendor: [Empty] physical id: 0 serial: [Empty] slot: ChannelA-DIMM0 *-bank:1 description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: M471B5273DH0-CK0 vendor: Samsung physical id: 1 serial: 34A8C7AF slot: ChannelA-DIMM1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) # More banks.
As you can see, I’m using DDR3 1600MHz RAM.
$ sudo dmidecode -t memory # dmidecode 2.9 SMBIOS 2.5 present. Handle 0x003B, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: Unknown Error Information Handle: Not Provided Number Of Devices: 8 Handle 0x003D, DMI type 17, 27 bytes Memory Device Array Handle: 0x003B Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM_A1 Bank Locator: NODE 0 CHANNEL 0 DIMM 0 Type: Other Type Detail: Synchronous Speed: 1067 MHz (0.9 ns) Manufacturer: 0x0198 Serial Number: 0xB12A9593 Asset Tag: Unknown Part Number: 9965426-037.A00LF # more such devices
This is for a server with ECC memory (as can be seen from the Error Correction Type field and the difference between Data Width and Total Width ).
Both tools are dependencies of the ubuntu-standard package and should be available by default on all Ubuntu systems. There used to be another tool called hwinfo , which is no longer available for Ubuntu since 13.10.
Как узнать общий объем физической памяти (RAM) в Linux
Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.
2. Команда free
free — самая простая в использовании команда из подборки. С её помощью выводятся данные по использованию физической и SWAP-памяти — по умолчанию в стандартном потоке вывода. Команда free — один из самых распространённых способов быстро проверить объём оперативной памяти, поскольку она доступна в большинстве дистрибутивов Linux . Достаточно ввести её в терминале без всяких флагов:
total used free shared buff/cache available Mem: 8021048 1320432 5689744 335556 1010872 6121932 Swap: 0 0 0
Как видите, объём физической памяти указан в байтах. Однако, эти же данные можно вывести в удобочитаемом формате, добавив флаг -h или –human :
total used free shared buff/cache available Mem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8Gi Swap: 0B 0B 0B
Как видно из полученных результатов, общий объём оперативной памяти составляет 7,6 ГБ. Есть и другие опции, с помощью которых можно привести выводимые данные в нужный формат: –kilo, –mega, –Giga и так далее. Ещё есть интересная опция -s :
Флаг -s обозначает секунды, и в этом случае команда free выведет данные об использовании оперативной памяти за каждые пять секунд. Опция особенно полезна, если отслеживать использование памяти нужно с заданным интервалом . Останавливается процесс сочетанием горячих клавиш Ctrl +C.
3. Команда vmstat
Как и команда free , vmstat (статистика виртуальной памяти) также доступна в большинстве дистрибутивов Linux. По умолчанию при выполнении команды vmstat выводятся данные о свободной памяти, памяти используемой в качестве буферов и кэша, SWAP-памяти, использовании процессора, блочных устройств и системы в целом:
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0
Флаг -w или –wide позволяет отобразить результат в развёрнутом, удобном для чтения формате. Поскольку нас интересует общий объём оперативной памяти, добавим флаг -s или –stats :
8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks
Первая запись в результатах — общий объём памяти RAM. Если нужны не все данные, можно использовать grep для получения только требуемой записи:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
4. Команда top
top представляет собой диспетчер задач в виде командной строки с выводом в режиме реального времени . С её помощью можно просмотреть активные процессы в виде удобной таблицы. Также она выводит данные по использованию процессора, оперативной памяти и системы в целом. Чтобы запустить такой диспетчер задач, достаточно выполнить команду top :
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie %Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 st MiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cache top - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie top - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02 MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem
Вверху, рядом с полем Mem , приводятся данные по физической памяти: общий объём RAM 7833 МБ.
5. Утилита dmidecode
Утилита dmidecode в удобочитаемом формате выводит сведения об аппаратных ресурсах: спецификации, серийные номера, версии BIOS. Данные по оборудованию извлекаются из таблицы DMI . С помощью утилиты можно получить ценные сведения о системе, например, максимальный объём поддерживаемой памяти.
5.1. Установка dmidecode
Утилита dmidecode не на всех дистрибутивах Linux установлена по умолчанию , так что начнём с её установки. Установить dmidecode можно непосредственно из репозитория дистрибутива с помощью менеджера пакетов.
В дистрибутивах, основанных на Ubuntu, возможна установка пакета с помощью инструмента apt :
Для RHEL, Fedora и CentOS можно использовать yum :
Если дистрибутив основан на Arch, с этой задачей справится pacman :
5.2. Использование dmidecode
Как только установка завершена, выполним команду dmidecode из терминала:
Чтобы выполнить dmidecode , нам потребуются корневые привилегии . После выполнения мы получим подробные сведения об аппаратных ресурсах. Будет много данных по оборудованию, но нас интересует только общий объём памяти.
К счастью, мы можем добавить к команде опцию –type и указать интересующие нас компоненты: BIOS, память, процессор, температуру и так далее. Опция –type требует введения номера типа записи DMI.
В нашем случае это запись DMI о памяти, и получить к ней доступ можно, введя следующие значения: 5, 6, 16, 17, 18, 19, 20, 21 и 22. Из этого перечня выбираем 19, поскольку именно так обозначаются устройства оперативной памяти, подключённые к материнской плате:
# dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0049, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x001FFFFFFFF Range Size: 8 GB Physical Array Handle: 0x0044 Partition Width: 1
Из результатов следует, что у нас только один модуль RAM размером 8 ГБ, установленный в один из слотов для оперативной памяти.
6. Виртуальный файл /proc/meminfo
Директория /proc относится к особому типу директорий, содержащих виртуальные файлы. Эти виртуальные файлы позволяют заглянуть в ядро, процессы и конфигурации Linux . Они не занимают места на диске, поскольку создаются непосредственно в момент обращения к ним. Для чтения некоторых требуются корневые привилегии.
В директории /proc есть особый файл под названием meminfo , прочесть который можно командами cat и less . Среди прочих полезностей там содержатся и данные об объёме физической памяти . Давайте заглянем в файл /proc/meminfo с помощью cat :
В примере использована команда cat — удобная утилита для чтения из файла или стандартного потока ввода. При выполнении эта команда прочтёт файл /proc/meminfo и представит обширные сведения о физической памяти . Нас интересует только общий объём оперативной памяти, который указан в первых трёх строках результата.
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kB MemFree: 4542960 kB MemAvailable: 5155668 kB
Мы ограничили вывод интересующими нас строками с помощью команды head . В сочетании с аргументом -n команда head задаёт количество строк результата. Размер памяти приводится в килобайтах и даёт понимание общего объёма физической памяти, а также свободного и доступного объёма.
Предположим, что мы пишем скрипт для командной оболочки Bash, и в нём фигурирует объём физической памяти RAM. Чтобы его туда добавить, можем выполнить чтение файла /proc/meminfo , а затем с помощью grep извлечь общий объём памяти.
#!/bin/bash total_ram () < local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*') echo $totalram >ram_size=$(total_ram) echo "Total RAM: $ram_size kB"
Теперь сохраним скрипт и сделаем его исполняемым:
$ chmod +755 totalram.sh $ ./totalram.sh Total RAM: 8021048 kB
7. Использование диспетчеров задач с графическим пользовательским интерфейсом
Отслеживать работу процессора, использование оперативной памяти и сетевых ресурсов, а также управлять процессами можно с помощью широкого ряда диспетчеров задач с графическим интерфейсом. Рассмотрим самые популярные варианты для Linux.
7.1. GNOME System Monitor
GNOME System Monitor входит в состав среды рабочего стола GNOME как диспетчер задач по умолчанию . А пользователи другой рабочей среды с лёгкостью могут найти пакет gnome-system-monitor в репозитории с дистрибутивом. После установки можно запустить диспетчер из командной строки:
Среди сведений на вкладке Resources найдётся и общий объём памяти.
7.2. KSysGuard
KSysGuard — диспетчер задач, разработанный сообществом KDE как дефолтный для свободной среды рабочего стола KDE . Аналогичным образом, если вы используете другую рабочую среду, его несложно установить в системе с помощью пакета ksysguard в соответствующем репозитории. Запустить его после установки можно командой ksysguard :
Открыв ksysguard , перейдём на вкладку System Load . Данные о памяти там представлены вместе с наглядным графиком.
8. Заключение
В этой статье мы рассмотрели различные команды и инструменты, с помощью которых можно выяснить объём физической памяти системы под управлением Linux.
Мы изучили базовую команду free и её альтернативу vmstat . Затем узнали, как с помощью команды top можно получить различные системные данные. Также взглянули на утилиту dmidecode и выяснили, как извлечь данные о физической памяти из таблицы DMI.
Ознакомились с директорией /proc и научились читать файл /proc/meminfo , чтобы выяснить общий объём памяти RAM и использовать его в скрипте для оболочки Bash. И наконец, перечислили пару графических диспетчеров задач, показав, как с их помощью просмотреть объём и статистику использования оперативной памяти.
НЛО прилетело и оставило здесь промокоды для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS .