|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (25)
просмотр истории страницы{toc:maxLevel=3} |
h1. Перед обращением в техподдержку |
... |
{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), что особенно важно для раздела с БД. |
h4. Чтение и запись с 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} |
|| Столбец || Пример || Пояснение || В чём измеряется || Лучше больше или меньше? || | Test | Random read 4KiB Q32T1 | Имя еста с пояснение что именно он делает: * Random read - случайное чтение * 4KiB - блоками по 4 килобайта * Q32 - с глубиной очереди 32 запроса * T1 - одним потоком | \- | \- | | T | R | Тип теста, чтение или запись | \- | \- | | Speed | 6 MiB/s | Средняя скорость передачи данных за тест | Мебибиты в секунду (степень двойки), например 100 мебибайт = 104,858 мегабайт) | Больше | | IOPS | 6538 | Количество операций ввода-вывода прошедшее за тест | В асолютных значениях. В примере - 6538 операций за время теста | Больше | | Latency | 4882 usec | Задержка выполнения запроса | В микросекундах. 1 секунда = 1 000 000 микросекунд | Меньше | |
* *Test* - имя теста с пояснением что именно он делает * *T* - тип теста, чтение или запись, * *Speed* - *больше = лучше*, средняя скорость передачи данных за тест в мебибитах, например 100 мебибайт = 104,858 мегабайт * *IOPS* - *больше = лучше*, количество операций ввода-вывода прошедшее за тест, в абсолютных значениях, в примере - 6538 операций за время теста * *Latency* - *меньше = лучше*, задержка выполнения запроса в микросекундах. 1 секунда = 1 000 000 микросекунд |
|
h4. Чтение с hdparm |
h4. Тест раздела с базой данных /mnt/db || Тест || Пояснение по-русский || Рекомендуемые значения || | Sequential Q32T1 read 1 MiB | Последовательное чтение блоков размером 1 мегабайт, 32 задачи в очереди, в 1 потоке | 380 Mib/с, 12000 IOPS, 2600 usec | | Sequential Q32T1 write 1 MiB | Последовательная запись блоков размером 1 мегабайт, 32 задачи в очереди, в 1 потоке | 230 Mib/с, 7500 IOPS, 4500 usec | | Random read 4KiB | Случайное чтение блоков размером 4 килобайта, 1 задача в очереди, в 1 потоке | 25 Mib/с, 6900 IOPS, 149 usec | | Random write 4KiB | Случайная запись блоков размером 4 килобайта, 1 задача в очереди, в 1 потоке | 75 Mib/с, 19000 IOPS, 58 usec | | Random read 4KiB Q32T1 | Случайное чтение блоков размером 4 килобайта, 32 задачи в очереди, в 1 потоке | 270 Mib/с, 70000 IOPS, 470 usec | | Random write 4KiB Q32T1 | Случайная запись блоков размером 4 килобайта, 32 задачи в очереди, в 1 потоке | 195 Mib/с, 50000 IOPS, 640 usec | | Random read 4KiB Q8T8 | Случайное чтение блоков размером 4 килобайта, 8 задач в очереди, в 8 потоках | 22 Mib/с, 5900 IOPS, 170 usec | | Random write 4KiB Q8T8 | Случайная запись блоков размером 4 килобайта, 8 задач в очереди, в 8 потоках | 65 Mib/с, 16800 IOPS, 65 usec | 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} |
h4. Запись 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* необходимо проверить аппаратную часть сервера. Оперативную память, процессор, дисковую подсистему. |