Проблемы с оборудованием

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (22)

просмотр истории страницы
{color:#333333}[http://mirror.yandex.ru/centos/6.6/isos/x86_64/]{color}{color:#333333}  ({color}[CentOS-6.6-x86_64-minimal.iso|http://mirror.yandex.ru/centos/6.6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso]{color:#333333}).{color}

h2. Полезные утилиты и способы диагностики

h3. Посмотреть тип оборудования

Устанавливаем утилиту:

{code}
yum install dmidecode
{code}

запускаем

{code}
dmidecode -t system | head -n20
{code}

анализируем в выводе Manufacturer: и Product Name:

Примеры:
а) Manufacturer: HP
Product Name: ProLiant DL360 Gen9
Это сервер HP
б) Manufacturer: Supermicro
Product Name: SYS-5019S-MR
Это тоже сервер
в) Manufacturer: System manufacturer
Product Name: System Product Name
Это обычное "десктопное" оборудование -- часто производитель не заполняет эти поля
г) Manufacturer: VMware, Inc.
Product Name: VMware Virtual Platform
Это виртуализированное окружение, хост-машина может быть на любой платформе


h3. Контроль температуры

1) Серверные платформы

{code}
yum -y install ipmitool

modprobe ipmi_si

modprobe ipmi_devintf

{code}

теперь можно посмотреть сенсоры:

{code}
ipmitool sdr list
{code}

2) Обычные "десктопные" платформы

{code}
yum install lm_sensors
{code}
после установки ищем сенсоры
{code}
sensors-detect
{code}
теперь можно посмотреть сенсоры:
{code}
sensors
{code}

(пока поддерживаются не все современные материнские платы)


h3. Проверка процессора

Подготовка: если сервер многопроцессорный, устанавливаем утилиту numactl

{code}
yum -y install numactl
{code}

Она позволит ограничить выполнение определенными ядрами процессора.
Смотрим конфигурацию машины:

{code}
numactl --show
{code}

Анализируем вывод: если в параметре "cpubind:" только 0, то система считает себя однопроцессорной, и ограничение не имеет смысла
Далее любую команду выполняем так: "numactl --cpubind <номер процессора> <ваша команда>"
Для проверки правильности можно вызвать командой саму себя:

{code}
numactl --cpubind 1 numactl --show
{code}

Должно показать "cpubind: 1"

Устанавливаем утилиту:

{code}
yum -y install stress
{code}

Используем утилиту stress: stress -t <время теста> -c <количество потоков>
количество потоков задаем как кол-во ядер процессора
Пример: stress -t 120 -c 16 — две минуты (120 секунд) и 16 потоков

Во время выполнения теста контролируем температуру процессора и вывод в /var/log/messages
Если в messages во время теста появилось что-то типа "Сore temperature above threshold, cpu clock throttled", значит имеются проблемы с охлаждением
Если в messages во время теста появилось "[Hardware Error]: Machine check events logged", значит есть реальные проблемы с аппаратной частью машины

h1. Сетевые карты

h2. Как проверить скорость диска?

h3. Рекомендуемый способ: fio, чтение и запись

*Рекомендуемый способ проверки - утилита fio*, только она позволяет проверить скорость диска, минуя буфер ФС, контроллера и самого диска, так же это единственная утилита показывающая отзывчивость диска (latency), что особенно важно для раздела с БД.

h3. Чтение и запись с fio


Сам fio отдаёт довольно запутанный вывод, поэтому мы сделали скрипт, который выводит основную информацию в более понятном виде:

{code:title=Команда}chroot /app/asr_billing/ python2.7 /usr/lib/python2.7/site-packages/python_tools/test_utils/test_disk_fio.py -l 1 -s 50 64 -f /mnt/db/{code}
{code:title=Вывод}
--------------------------------------------------------------------------------
Test | T | Speed | IOPS | Latency
--------------------------------------------------------------------------------
Sequential Q32T1 read 1 MiB | R | 6 MiB/s | 6538 | 4882 usec
Sequential Q32T1 read 1 MiB | R | 489 MiB/s | 15678 | 2038 usec
Sequential Q32T1 write 1 MiB | W | 5 106 MiB/s | 6125 3406 | 5213 9390 usec
Random read 4KiB | R | 1 32 MiB/s | 291 8323 | 3425 118 usec
Random write 4KiB | W | 1 117 MiB/s | 30114 | 303 | 3292 usec
Random read 4KiB Q32T1 | R | 3 377 MiB/s | 96696 | 818 | 39084 330 usec
Random write 4KiB Q32T1 | W | 1 223 MiB/s | 57311 | 475 | 67218 557 usec
Random read 4KiB Q8T8 | R | 2 249 MiB/s | 63750 | 707 | 11298 125 usec
Random write 4KiB Q8T8 | W | 1 210 MiB/s | 53894 | 440 | 18170 147 usec
--------------------------------------------------------------------------------
{code}
| Random write 4KiB Q8T8 | Случайная запись блоков размером 4 килобайта, 8 задач в очереди, в 8 потоках | 65 Mib/с, 16800 IOPS, 65 usec |

h3. Чтение с hdparm
h3. Устаревший способ: hdparm, чтение
{code}hdparm -t /dev/sda3{code}
Вывод:
{code}for i in 1 2 3 4 5 6; do hdparm -t /dev/sda; sleep 1; done{code}

h3. Запись c dd
h3. Устаревший способ: dd, запись

Разные области диска могут иметь различный износ. Для проверки скорости записи в тот или иной раздел выполните следующую команду:
h1. Сервер перезагрузился, как понять почему?

{info}В любом случае нестандартного поведения сервера полезно проверять системный лог

{code}tail -f /var/log/messages{code}{info}



Перезагрузить сервер могут:
# Softdog_agent
Для проверки необходимо проверить лог /app/base/var/log/base_web_server.log на наличие слов shutdown или reboot
{code}
grep shutdown /app/base/var/log/base_web_server.log | grep -v '^\+'
[pid: 3102|app: 0|req: 27592/120314] 85.140.78.107 () {40 vars in 997 bytes} [Fri Mar 13 14:24:43 2020] GET /shutdown/ => generated 4196 bytes in 43975 msecs (HTTP/1.1 200) 2 headers in 73 bytes (1 switches on core 0)
{code}
# Возможно имеет место быть kernel panic. Необходимо проверить лог в /var/crash/'дата перезагрузки системы'/vmcore-dmesg.txt
# Возможно имеет место быть *kernel panic*. Необходимо проверить лог:
{code}
/mnt/var/crash/'дата перезагрузки системы'/vmcore-dmesg.txt
{code}
# Если сервер перезагрузился из-за *kernel panic* необходимо проверить аппаратную часть сервера. Оперативную память, процессор, дисковую подсистему.