Новый выделенный сервер: приемка и проверка

Начиная работу с новым сервером, нелишним будет проверить, соответствует ли он заявленной конфигурации. Многие начинающие пользователи испытывают затруднения в случаях, когда требуется просмотреть информацию о сервере с использованием команд, доступных только в консоли.

В этой статье мы расскажем о том, как можно получить спецификацию Linux-сервера в командной строке.

Общая информация о системе

Получить информацию о системе можно с помощью команды uname, которая пишет в стандартный вывод имя используемой операционной системы. Если указать одну из описанных ниже опций, на консоль будет выведена более специализированная информация о характеристиках системы:

# uname -a
Linux srv1 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Имя операционной системы, дата компиляции ядра, версия и битность: Tue Dec 3 01:24:59 UTC 2013, 3.8.0-35-generic, i386 — 32 бита, x86_84 — 64 бита.

  • -а выводить всю возможную информацию;
  • -i показать информацию об идентификаторе ядра;
  • -m показать тип текущей аппаратной платформы;
  • -n показать имя системы;
  • -p показать тип процессорной архитектуры сервера;
  • -r показать информацию о релизе операционной системы;
  • -s показать имя используемой операционной системы;
  • -v показать информацию о версии используемой операционной систем.

Информацию об используемом дистрибутиве операционной системы можно также вывести при помощи команды cat /etc/issue:

# cat /etc/issue
Ubuntu 13.04 \n \l

Есть и другой способ просмотра информации о дистрибутиве:

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring

Информация об аппаратных компонентах

Утилита lshw

Утилита lshw выводит на консоль полный список аппаратных компонентов системы вместе с информацией об устройствах. lshw включена во многие современные дистрибутивы Linux по умолчанию; если она отсутствует, ее можно установить стандартным менеджером пакетов:

# apt-get install lshw

Чтобы вывести на консоль информацию о «железе», нужно ввести следующую команду:

# lshw

Вывести эту информацию в сокращенном виде можно при помощи опции -short:

# lshw -short

С помощью lshw можно также просматривать и информацию об отдельных аппаратных компонентах системы. Для этого используется ключ -С, после которого указывается устройство, информацию о котором нужно вывести на консоль:
— процессор:

# lshw -C сpu

— память:

# lshw -C memory

— дисковая подсистема:

# lshw -C disk

Утилита lspci

С помощью утилиты lspci можно просмотреть информацию обо всех шинах PCI и подключенных к ним устройствах. Она входит в пакет pciutils, включенный в большинство современных дистрибутивов Linux; если он по каким-либо причинам отсутствует, его можно установить при помощи стандартного менеджера пакетов.

По умолчанию lspci показывает краткий список устройств; более подробную информацию можно получить при помощи многочисленных опций.

Опция -t отображает информацию о шинах и подключенных устройствах в виде дерева. В выводе будут указаны только цифровые идентификаторы устройств:

# lspci -t

-[0000:00]-+-00.0
           +-01.0-[01]--+-00.0
           |            \-00.1
           +-03.0-[02]--+-00.0
           |            \-00.1
           +-07.0-[04]--
           +-09.0-[05]--
           +-14.0
           +-14.1
           +-1c.0-[03]----00.0
           +-1d.0
           +-1e.0-[06]----03.0
           +-1f.0

Просмотреть цифровые коды устройств можно с помощью опции -n:

# lspci -n
01:00.1 0200: 14e4:1639 (rev 20)
02:00.0 0200: 14e4:1639 (rev 20)
02:00.1 0200: 14e4:1639 (rev 20)
03:00.0 0104: 1000:0079 (rev 05)
06:03.0 0300: 102b:0532 (rev 0a)

В начале каждой строки в выводе указывается код устройства в формате «:.», а далее — код в формате «:».

Чтобы в список были включены не только коды, но и имена соответствующих им устройств, указывается опция -nn:

# lspci -nn
01:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet [14e4:1639] (rev 20)
03:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 05)
06:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

Определить имя устройство по коду «:.» можно при помощи опции -s:

# lspci -s 03:00.0
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

Чтобы определить устройство по коду «:,» нужно воспользоваться опцией -d:

# lspci -d 1000:0079
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)

После ключа -d можно указать только код поставщика или код устройства, например:

# lspci -d 8086:
# lspci -d :0532

В этом случае будет показан список всех устройств, соответствующих введенному коду.
Для просмотра информации о драйверах ядра, отвечающих за конкретные устройства, используется опция -k:

# lspci -k
00:1f.2 IDE interface: Intel Corporation 82801IB (ICH9) 2 port SATA Controller [IDE mode] (rev 02)
        Subsystem: Dell PowerEdge R610 SATA IDE Controller
        Kernel driver in use: ata_piix
        Kernel modules: ata_generic, pata_acpi, ata_piix
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
        Subsystem: Dell PowerEdge R610 BCM5709 Gigabit Ethernet
        Kernel driver in use: bnx2
        Kernel modules: bnx2
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)
        Subsystem: Dell PERC H700 Integrated
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

Псевдофайловая система /proc

Информация об аппаратных компонентах в Linux-системах хранится в так называемой псевдофайловой системе /proc. Она называется псевдофайловой, так как является виртуальной и вообще не занимает места на накопителе. Большинство хранимых в /proc псевдофайлов представлены в понятной для человека форме. Дерево /proc используют многие программы, выводящие информацию о системе.

Процессор

Информация о процессоре хранится в псевдофайле /proc/cpuinfo. Чтобы просмотреть его содержимое, введем следующую команду:

# cat /proc/cpuinfo

В выводе этой команды содержится много различной информации: о модели процессора, количестве ядер, поддерживаемых технологиях аппаратной виртуализации и т.п.

Самый объемный и трудный для понимания раздел вывода — это, конечно же, flags (флаги). Они содержатся и в выводе команды lshw.

Рассмотрим значения наиболее важных флагов:

  • ht (HyperThreading) — поддержка технологий одновременной многопоточности; присутствует в сериях процессоров Intel Xeon, Pentium 4, Atom, Core i3, Core i5, Core i7;
  • lm (long mode) — указывается, если процессор выполнен по 64-битной технологии;
  • vmx (для Intel), svd (для AMD) — поддержка процессором технологий аппаратной виртуализации; означает наличие инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем;
  • aes — поддержка расширения системы команд AES;
  • hypervisor — указывается, если ОС запущена под гипервизором;
  • smx — поддержка технологий TXT (TPM).

Подробную информацию о значении всех флагов можно найти здесь и здесь.

Память

Просмотреть информацию об общем объеме свободной и используемой памяти, включая swap, можно при помощи команды free. Вывод этой команды может выглядеть, например, так:

# free -m
            total   	used    free    shared  buffers  cached
Memory:     3627   	3216    410     0       107      1157
-/+ buffers/cached: 	1950   	1676
Swap:       3762        31      3731

Опция -m указывает, что объем свободной и используемой памяти нужно выводить в мегабайтах. Чтобы отображать объем в гигабайтах, нужно указать ключ -g; это удобно для серверов с большим (исчисляемым десятками, а то и сотнями гигабайт) объемом оперативной памяти.

Еще более подробная информация хранится в псевдофайле /proc/meminfo.
Вывод команды cat /proc/meminfo включает следующие основные параметры:

  • MemTotal — доступный объем оперативной памяти;
  • MemFree — показывает, какой объем памяти в данный момент не используется и доступен для выделения процессам;
  • Buffers — область памяти, в которой хранятся данные, ожидающие записи на диск;
  • Cached — объем, занятый под кэш чтения страниц с диска;
  • SwapCached — объем, который был перенесен в область подкачки, а затем перемещен обратно в оперативную память;
  • Active — объем памяти, занятый наиболее часто используемыми страницами;
  • Inactive — объем памяти, занятый страницами, которые в настоящий момент не используются;
  • Swap {total, free} — общий объем области подкачки;
  • Dirty — так называемые «грязные» страницы (т.е. находящиеся в оперативной памяти, но еще не сброшенные на диск);
  • Writeback — страницы, сбрасываемые на диск в настоящий момент;
  • AnonPages — анонимные страницы (данные, используемые программами, но не ассоциированные с каким-либо файлом);
  • Mapped — общий объем памяти, перенесенный в виртуальное адресное пространство процессов при помощи mmap;
  • Committed_AS — количество памяти, выделенное всем процессам (даже если они при этом не используют ее в полном объеме).

Дисковая подсистема

Для проверки разбивки и количества дисков используется команда:

# fdisk -l 

Размер свободного и занятого дискового пространства во всех смонтированных файловых системах можно узнать с помощью команды df. С командой используются следующие опции:

  • -a вывести информацию обо всех файловых системах;
  • -h вывести информацию в человекочитаемом формате;
  • -T показать тип файловой системы;
  • -t вывести информацию только об указанных типах файловых систем.

Рассмотрим пример вывода команды df -h более подробно:

# df -h
Filesystem                Size  Used  Avail Use% Mounted on
/dev/mapper/vg0-vg0root   50G   15G   32G   32%  /
tmpfs                     5.9G 	0     5.9G   0%  /dev/shm
/dev/sda1                 1008M 62M   895M   7%  /boot
/dev/mapper/vg0-var       2.7T  839G  1.7T  33%  /var

Информация о размере фактического свободного пространства отображается в разделе Available. Если сложить цифры, указанные в разделах Available и Used, то полученная сумма не будет равна цифре в разделе Size. Это связано с тем, что часть дискового пространства отводится под системные файлы и метаданные.

Просмотреть подробную информацию о состоянии жесткого диска можно при помощи утилиты smartctl, включенной в официальные репозитории большинства современных дистрибутивов Linux. Для просмотра полной информации нужно ввести команду:

# smartctl -a /dev/sda

Об интерпретации вывода команды можно прочитать в этой статье.

Для отображения информации о физических томах используются команды pvdisplay, pvs и pvscan.

Команда pvscan проверяет все блочные устройства в системе на наличие физических томов:

# pvscan
  PV /dev/md0   VG vg0   lvm2 [462.96 GiB / 205.22 GiB free]
  Total: 1 [462.96 GiB] / in use: 1 [462.96 GiB] / in no VG: 0 [0   ]

С помощью команды pvdisplay можно просмотреть подробный многострочный вывод для каждого физического тома:

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md0
  VG Name               vg0
  PV Size               462.96 GiB / not usable 1.87 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              118517
  Free PE               52536
  Allocated PE          65981
  PV UUID               Idm6eZ-5vS0-IJCo-RDQq-WZNk-nJ22-eb7aDd

С помощью команды pvs можно настроить формат отображения данных (для каждого тома — одна строка).Это бывает полезно, например, при написании скриптов.

Для просмотра информации о логических томах жесткого диска используются утилиты lvs, lvscan и lvdisplay, входящие в пакет lvm2. lvm2 устанавливается при помощи стандартного менеджера пакетов:

# apt-get install lvm2

Команда lvscan выводит на консоль список всех имеющихся в системе логических томов (листинг фрагмента вывода):

# lvscan
  ACTIVE            '/dev/vg0/root' [18.62 GiB] inherit
  ACTIVE            '/dev/vg0/www' [200.00 GiB] inherit

С помощью команды lvdisplay можно вывести на консоль список атрибутов логических томов (имя, размер, разметка). Просмотреть информацию об атрибутах конкретного логического тома можно, воспользовавшись опцией -v и указав его имя (листинг фрагмента вывода):

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg0/root
  VG Name                vg0
  LV UUID                yPtVFt-BON5-agWC-jXSr-cU4x-Tcu9-NRiwMF
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                18.62 GiB
  Current LE             4768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/vg0/www
  VG Name                vg0
  LV UUID                reCzuE-5dgN-A4eB-LubM-VtUA-Lclq-MUt5v6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

Команда lvs аналогична рассмотренной выше команде pvs: позволяет настроить формат отображения данных и выводит по одному тому каждой строке.

# lvs
  LV    VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  root  vg0  -wi-ao  18.62g
  www   vg0  -wi-ao 200.00g

Информация о состоянии активных программных RAID-массивов хранится в псевдофайле /proc/mdstat. Просмотреть его содержимое можно с помощью команды cat /proc/mdstat:

# cat /proc/mdstat

Personalities : [raid1] 
read_ahead 1024 sectors
md1 : active raid1 hda3[0] hdc3[1]
      522048 blocks [2/2] [UU]
md0 : active raid1 hda2[0] hdc2[1]
      4192896 blocks [2/2] [UU]
md2 : active raid1 hda1[0] hdc1[1]
      128384 blocks [2/2] [UU]

В рассматриваемом нами примере в системе содержится три массива. Для каждого из них в псевдофайле /proc/mdstat имеется отдельный раздел, содержащий следующую информацию:

  • имя RAID-массива;
  • состояние RAID-массива;
  • уровень массива;
  • имена физических разделов, входящих в состав массива;
  • число настроенных устройств и число работающих устройств в массиве;
  • состояние каждого работающего устройства (U означает, что устройство работает, а _ — что устройство отказало, sync — идет синхронизация).

Проверить, используется ли на сервере аппаратный RAID, можно с помощью уже знакомой нам команды lspci:

# lspci -nn | grep RAID

Если RAID используется, то на консоль будет выведен ответ типа:

02:00.0 RAID bus controller [0104]: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] [1000:0079] (rev 04)

Информацию о состоянии аппаратного RAID при помощи штатных средств операционной системы получить невозможно. Для этого существуют специальные утилиты: MegaCLI для LSI-контроллеров и Adaptec Storage Manager (asm) для adaptec. В официальные репозитории Linux-систем они не включены. Скачать megacli можно отсюда, a ASM — c сайта компании Adaptec.

Сетевые интерфейсы

Информация обо всех сетевых интерфейсах, подключенных к системе, содержится в псевдофайле /proc/net/dev. При вводе команды cat /proc/net/dev на консоль будет выведен список всех активных и неактивных сетевых интерфейсов.

Статус всех текущих интерфейсов можно просмотреть с помощью команды ip link show up.
Команда ip address выводит информацию обо всех сетевых интерфейсах:

# ip address
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
	link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
	inet 127.0.0.1/8 scope host lo
	inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
	link/ether 00:30:48:f2:7a:a0 brd ff:ff:ff:ff:ff:ff
	inet 5.178.83.252/29 brd 5.178.83.255 scope global eth0
	inet6 fe80::230:48ff:fef2:7aa0/64 scope link
  valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc noop state DOWN qlen 1000
	link/ether 00:30:48:f2:7a:a1 brd ff:ff:ff:ff:ff:ff

UP означает, что интерфейс работает; NO CARRIER означает отсутствие кабеля или трансивера в порту сетевой карты. Команда ip route (сокращенный вариант — ip r) выводит на консоль таблицы маршрутизации.

# ip r
default via 88.93.16.185 dev br0
50.178.87.0/24 via 192.16.122.1 dev br0
10.0.0.0/8 via 192.16.122.1 dev br0
1.131.251.0/24 via 192.16.122.1 dev br0
192.16.122.0/24 dev br0  proto kernel  scope link  src 192.16.122.2
88.93.16.184/29 dev br0  proto kernel  scope link  src 88.93.16.186

Заключение

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

Мы будем рады, если в комментариях вы выскажете пожелания и предложения по тематике следующих публикаций цикла.

Что еще почитать по теме

T-Rex 30 марта 2021

Что такое SMTP-протокол и как он устроен?

SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он был представлен еще в 1982 году, но не теряет актуальности до сих пор. В статье разбираемся, какие задачи решает протокол и как он ра…
T-Rex 30 марта 2021
Владимир Туров 1 сентября 2020

Дело совершенно секретного iPod

Это был обычный серый день в конце 2005 года. Я сидел на рабочем месте и писал код для следующей версии iPod. Вдруг без стука ворвался директор ПО для iPod, начальник моего начальника, и закрыл дверь.
Владимир Туров 1 сентября 2020
T-Rex 21 августа 2020

TrendForce: цены на SSD упадут

Эксперты DRAMeXchange предсказывают значительное падение цен на оперативную память и твердотельные накопители в ближайшее время. Причина — сокращение спроса на чипы для NAND и DRAM.
T-Rex 21 августа 2020

Новое в блоге

Михаил Фомин 24 июня 2022

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Рассказываем, для каких задач бизнесу больше подойдет Docker Swarm, а когда следует выбрать Kubernetes.
Михаил Фомин 24 июня 2022
Ульяна Малышева 30 сентября 2022

«Нулевой» локальный диск. Как мы запустили облако только с сетевыми дисками и приручили Ceph

Чем хороши сетевые диски и почему именно Ceph, рассказал директор по развитию ядра облачной платформы Иван Романько.
Ульяна Малышева 30 сентября 2022
Валентин Тимофеев 30 сентября 2022

Как проходит онбординг сотрудников ИТО? Что нужно, чтобы выйти на смену в дата-центр

Рассказываем, как обучаем новых сотрудников, какие задачи и испытания проходят инженеры прежде, чем выйти на свою первую смену.
Валентин Тимофеев 30 сентября 2022
T-Rex 28 сентября 2022

Книги по SQL: что почитать новичкам и специалистам

Собрали 6 книг, которые помогут на старте изучения SQL и при углублении в тему.
T-Rex 28 сентября 2022