Вы можете узнать, какое железо установлено в вашем сервере из BIOS/UEFI, или через отдельный управляющий интерфейс сервера, который есть у большинства промышленных серверов (HPE ILO, Dell iDRAC, IBM BMC, IPMI и т.д.). А что делать, если у сервера нет интерфейса управления (или он не доступен), а перезагружать сервер перезагружать не желательно? В этой статье на примере CentOS мы рассмотрим основные команды и утилиты Linux, которые позволят получить подробные сведения об аппаратном обеспечении сервера: оперативной памяти, процессоре, жестких дисках, материнской плате и настройках BIOS.
Информация об оперативной памяти (RAM) в Linux
Вы можете получить информацию о количестве оперативной памяти на сервере с помощь встроенных средств Linux CentOS (данные команды не дают подробной информации, но вполне приемлемы для быстрой оценки).
# free -m
Или
# free -g
Первая покажет количество памяти в мегабайтах, вторая в гигабайтах (информация о количестве оперативной памяти указано в значении Mem: total).
Тут же будет и показан размер swap.
Также вы можете получить информацию о RAM из файла /proc/meminfo:
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
Первый вариант на мой взгляд удобнее, так как вы сразу видите и используемую память, и свободную.
Так же существует еще несколько вариантов проверки количества ОЗУ на сервере:
# vmstat -s
16044948 K total memory 625540 K used memory 2677508 K active memory 514664 K inactive memory 11327980 K free memory 169676 K buffer memory 3921752 K swap cache 8388604 K total swap 0 K used swap 8388604 K free swap 3633471 non-nice user cpu ticks 2229 nice user cpu ticks 11250866 system cpu ticks 5484997226 idle cpu ticks 4290610 IO-wait cpu ticks 0 IRQ cpu ticks 1059724 softirq cpu ticks 0 stolen cpu ticks 337077 pages paged in 115989880 pages paged out 0 pages swapped in 0 pages swapped out 3806699383 interrupts 3782319298 CPU context switches 1572865665 boot time 5825288 forks
Vmstat показывает не только физическую память сервера, но и всю статистику по виртуальной памяти.
Либо запустите команду top и посмотрите информацию о RAM в самом верхнем блоке:
Так же, есть удобная утилита atop, которая покажет вам количество ОЗУ на сервере, а также информацию по занятой, кешированной и свободной памяти.
Вы можете установить утилиту atop из EPEL репозитория с помощью yum (dnf):
# yum install atop -y
Вывод atop:
Должна быть в вашем арсенале и не менее удобная утилита nmon. Установите ее на сервер:
# yum install nmon -y
Выполните команду nmon, и для проверки ОЗУ нажмите m:
Но все вышеперечисленные утилиты, показывают лишь объем памяти, а модель скорость и другие характеристики нет. Если нужна более подробная информация о бланках памяти (производитель, тип, частота), можно воспользоваться утилитой dmidecode:
# dmidecode -t 17
Как видите, dmidecode выводит более подробную информацию о установленных модулях памяти.
Как узнать информацию о процессоре (CPU) в Linux?
Информацию о процессоре в Linux можно получить несколькими способами. Начнем с самого простого — получение информации из файла /proc/cpuinfo:
# cat /proc/cpuinfo | grep model
Чтобы узнать количество ядер, выполните:
# cat /proc/cpuinfo | grep processor
В моем случае на сервере 8 ядер.
Более подробную информацию о процессоре, можно узнать командой lscpu:
# lscpu
Утилита lscpu покажет вам количество ядер, модель процессора, максимальную частоту, рамеры кэшей CPU, ноды NUMA и многое другое.
Количество ядер, так же можно узнать запустив команду
atop
или
nproc --all:
Для отображения подробной информации, можно дополнительно установить утилиту cpuid:
# yum install cpuid -y
После установки запустите командой:
# cpuid
Вы получите информацию не только о модели процессора, но тип и семейство процессора, конфигурацию кеша, функцию управления питанием и другое.
С помощью утилиты demidecodev вы так же можете узнать всю информацию об установленных на сервере процессорах:
# dmidecode --type processor
И, пожалуй, последняя утилита для проверки процессора inxi. Это скрипт на bash, который покажет вам модель процессора, размер кеша, частоту и дополнительные возможности процессора. Установим его:
# yum install inxi -y
Запустите скрипт:
# inxi -C
Информация о жестких дисках сервера в Linux
Чтобы получить информацию о жестких дисках в системе, я обычно использую утилиту hdparm. Сначала нужно установить ее из репозитория:
# yum install hdparm -y
Чтобы получить инфу по жесткому диску, нужно указать название устройства:
# hdparm -I /dev/sdb
Как видите, при проверке отображается модель диска, серийный номер, версия прошивки диска, цилиндрах, rpm, поддерживаемые функции и ряд другой информации.
Вторая не менее популярная утилита это smartctl (она по умолчанию уже установлена в системе). Чтобы вывести информацию о диске, выполните:
# smartctl -d ata -a -i /dev/sdb
Информация будет предоставлена так же подробно:
Очередная, очень удобная утилита lshw. Установите ее:
# yum install lshw -y
Выполните команду:
# lshw -class disk
Утилита dmidecode: получения информации о материнской плате, BIOS и др.
В данном разделе я приведу примеры более расширенного использования утилиты dmidecode. Dmidecode позволяет получить информацию об аппаратном обеспечении сервера на основе данных из BIOS по стандарту SMBIOS/DMI.
С помощью dmidecode мы можем получить информацию о материнской плате, bios, шасси и слотах сервера. Например:
# dmidecode --type baseboard
– получим информацию о материнской плате.
# dmidecode --type bios
– информация о BIOS (версия, поддерживаемые функции).
# dmidecode --type chassis
– сведения о корпусе (шасси) сервера.
# dmidecode --type slot
– сведения о используемых слотах на материнской плате.
Чтобы собрать вообще всю информацию о железе вашего сервера Linux, можно воспользоваться ранее указанную утилиту lshw:
# lshw -html > server_info.html
Вся информация будет выгружена в html файл.
Итак, мы рассмотрели, как получить информацию о аппаратном обеспечении вашего сервера. Надеюсь, информация будет полезна многим пользователям, а может и администраторам.