Tag Archives: hardware

Как получить дополнительную информацию о производительности дисков?

Команда iostat предоставляет статистику операций ввода/вывода, но иногда администраторам требуется более детальная информация. В таких случаях может оказаться полезным файл /proc/diskstats. Ниже приведён пример выполнения команды cat /proc/diskstats:

Рассмотрим приведённый вывод:

Первые две колонки — это старший и младший номер устройства.

Третья колонка содержит имя устройства, после которого идут ещё 11 колонок.

Поле 1: количество выполненных операций чтения. Это общее число успешно завершённых операций чтения.

Поле 2: количество объединённых операций чтения.

Поле 3: количество считанных секторов. Это общее число успешно прочитанных секторов.

Поле 4: количество миллисекунд, затраченных на чтение. Это общее число миллисекунд, затраченных на операции чтения (измеряется от вызова __make_request() до end_that_request_last()).

Поле 5: количество выполненных операций записи. Это общее число успешно завершённых операций записи.

Поле 6: количество объединённых операций записи. Последовательные операции чтения и записи могут объединяться для повышения эффективности. Потому две операции считывания по 4K, могут стать одной операцией по считыванию 8K непосредственно перед передачей запроса диску. Таким образом, эти операции будут посчитаны (и выполнены) как одна операция ввода/вывода. Это поле показывает насколько часто происходит такая ситуация.

Поле 7: количество записанных секторов. Это общее число успешно записанных секторов.

Поле 8: количество миллисекунд, затраченных на запись. Это общее число миллисекунд, затраченных на операции записи (измеряется от вызова __make_request() до end_that_request_last()).

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

Поле 10: количество миллисекунд, затраченных на выполнение операций ввода/вывода. Это значение возрастает, пока значение поля 9 не равно нулю.

Поле 11: взвешенное число миллисекунд, затраченных на выполнение операций ввода/вывода. При каждом начале, завершении,или объединении операций ввода/вывода, или при считывании этой статистики, это поле увеличивается на число выполняемых в текущий момент операций ввода/вывода (поле 9), умноженное на количество миллисекунд, затраченных на выполнение операций ввода/вывода, с момента последнего обновления данного поля. Это позволяет получить простую статистику как времени выполнения операций ввода/вывода, так и количества незавершённых операций, число которых может возрастать.

Прим.пер.: здесь рассматривается формат записи, относящийся к диску, не разделу. Для разделов представлены только 4 поля, аналоги описанных полей 1,3,5,7. Начиная с ядра 2.6.25 у разделов появился полный набор полей статистики.

Как избежать неправильной нумерации сетевых карт в системах Red Hat Enterprise Linux с несколькими сетевыми интерфейсами?

Система: Red Hat Enterprise Linux 5

Проблема:

Большинство устройств нумеруются ядром Linux в соответствии с их порядком в PCI-таблице системного BIOS. Наполнением этой таблицы занимается сам BIOS. Поскольку порядок устройств в этой таблице на разных системах не обязательно последовательный, устройства могут нумероваться ядром по-разному. Обычно при определении порядка устройств на шине используются номер шины, номер устройства и номер функции. Некоторые системы имеют несколько шин, например шину PCI и шину PCI-X.

Решение:

Для того, чтобы избежать случаев перенумеровывания системных сетевых интерфейсов, необходимо использовать параметр HWADDR=. Например, следующая строка может быть добавлена в любой из файлов /etc/sysconfig/network-scripts/ifcfg-ethN:

HWADDR=

Если параметр “HWADDR=” не используется, то при перезагрузках может происходить периодическое переименование устройств.

Пример

В вышеприведённом примере вы можете видеть, что устройство eth0 после перезагрузки было переименовано в “__tmp1174018308”. Чтобы избежать повторения такой проблемы, задайте параметр “HWADDR=” в файле /etc/sysconfig/network-scripts/ifcfg-eth0 следующим образом:

Ethernet Device
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:1D:09:6A:78:EA
ONBOOT=yes