Рубрика ‘Red Hat Enterprise Linux’

Анализ использования CPU SQL запросами в СУБД Oracle

Наткнулся на интересную статью по диагностике высокого потребления CPU запросами в СУБД Oracle. Рекомендую к прочтению.

Скачать (PDF, 277KB)

Удаляем старые ядра в Linux

Debian:

 Centos:

Parted: The resulting partition is not properly aligned for best performance

Тем кто сталкивался с разметкой емких дисковых подсистем знакома утилита parted. Для тех кто читает про нее впервые поясню – утилита fdisk или cfdisk не умеют работать с дисковыми подсистемами емкостью >2Tb, о чем честно и пишут:

Соответственно при помощи утилиты parted мы можем сделать 2-е базовые вещи:

  • Изменить тип таблицы разделов с MBR на GPT
  • Разметить дисковую подсистему на нужное количество разделов

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

Но вернемся к сообщению указанному в заголовке заметки. Это сообщение выводится в случае если при разметке parted считает что вы указали неправильные значения для начала и конца раздела, например:

И из-за этого данные, которые будут записываться или читаться с диска, будут размещены не самым оптимальным способом. Данная проблема возникла в связи с переходом производителей жестких дисков на другой размер секторов, а именно с 512B на 4KB, и в связи с этим, если при разметке диск указать неправильный стартовый сектор для раздела, то может получиться ситуация, когда один логический блок данных в 512B будет записан сразу на два 4KB сектора, которые будут прочитаны контроллером жесткого диска при запросе на выборку данных, что в итоге приводит к снижению производительности всей дисковой подсистемы. Более подробно очень детально описана данная ситуация на сайте Seagate.

Так чем же нам может помочь утилита parted для решения описанной проблемы – у ней есть встроенный функционал для расчета оптимального начального смещения для корректного выравнивания границ разделов. Настроить логику работы данного функционала можно при помощи ключа “-a”, более подробно можно прочитать в документации.

Данный функционал работает по следующей логике:

Где указанные параметры – это значения в sysfs привязанные к дисковой подсистеме или конкретному разделу, например:

Поэтому для решения указанной в заголовке проблемы, вы можете посчитать номер стартового сектора в ручном режиме по формуле и указать его в parted:

Либо довериться аналогичному алгоритму встроенному в утилиту:

В случае если ошибка не возникнет и раздел будет размечен можете считать что вы все сделали правильно и у вас правильно произведено выравнивание блоков на дисковой подсистеме.

Настройка NSCA сервера для системы мониторинга Nagios

В данной заметке я напишу как настроить NSCA демона для работы системы проверки идентичности MySQL сервера.

Для корректной работы NSCA у вас уже должна быть установлена и настроена система мониторинга Nagios, то есть как минимум пробники для сервера localhost должны проверяться и отображаться корректно. Далее, необходимо установить NSCA сервер, в RHEL 5 это можно сделать командой (предварительно подключив epel репозиторий):

После установки управление демоном происходит при помощи скрипта /etc/init.d/nsca, управление конфигурацией происходит при помощи файла /etc/nagios/nsca.cfg. Необходимо проверить, что путь до command_file указан верный, либо исправить, если это не так. У меня данный параметр настрен следующим образом:

Все данные, что NSCA получает по сети он будет обрабатывать и записывать в этот файл, далее Nagios разберет полученную информацию, и, если нет ошибок, обработает и покажет в системе мониторинга.

После вышеописанных действий NSCA сервер настроен, осталось настроить клиента. Для этого устанавливаем его на сервере при помощи команды:

Конфигурационный файл /etc/nagios/send_nsca.cfg в правках не нуждается, проверить корректность работы утилиты send_nsca можно следующим образом – запустить ее со следующими параметрами:

“echo -e” – передает на через pipe утилите send_nsca специальную строку с указанием сервера, сервиса, состояния (0 – все ок, 1 – Warning, 2 – Error, 3 – Unknown), параметр -e отвечает за обработку управляющих символов, то есть \t – табуляция, \n – перевод строки.

nsca.server.hostname – DNS адрес или IP адрес сервера.

После проверки при помощи send_nsca корректной работы связки nsca client – nsca server, осталось настроить систему мониторинга Nagios.

Для этого нужно создать шаблон для сервиса с типом passive, я использую следующий:

Измените его под свои настройки Nagios, и проверте, что у вас есть timeperiod c именем never и содержимым:

Этот период задает нулевую периодичность для проверки сервисов с типом passive. После вышеописанной настройки осталось настроить сам сервис, например так:

Перезапускаем Nagios, для хоста, у которого мы настроили сервис MySQL Checksum Check он находится в состоянии pending, после отправки при помощи send_nsca сообщения указанного выше, через некоторое время он должен перейти в состояние ОК.

Название сервиса MySQL Checksum Check должно быть одинаковым как в конфигурации Nagios, так и для утилиты send_nsca, иначе Nagios не сможет обработать сообщение полученное от NSCA сервера.

Настройка timeout для сессии в Crystal Reports Server XI R2

Столкнулся с проблемой, после авторизации в CrystalReports Server`e и некорректном выходе пользователя в WEB интерфейсе сессия, которую он начал, может висеть бесконечно. В связи с тем, что на сервер было куплено всего 5 CAL, это доставляло большие проблемы и иногда приходилось перезапускать сервер, чтобы дать возможность менеджерам получить доступ к отчетам.

Решение проблемы:

Открываем файл bobje/tomcat/webapps/businessobjects/enterprise115/desktoplaunch/WEB-INF/web.xml

Находим блок

И раскоментируем его. Ниже в этом же файле корректируем блок:

И выставляем нужное нам значение. У меня стоит 10. После этого перезапускаем CRS сервер, чтобы удалить старые сессии и tomcat сервер, чтобы применились новые настройки. Все, проблема решена.

Проблемы с контроллером Adaptec 3805 (3405) часть 2

Не так давно писал о проблемах с которыми столкнулся при использовании контроллеров Adaptec.

А точнее – подвисание сервера и возникновение следующих ошибок в dmesg лог файле:

aacraid: Host adapter abort request (4,0,1,0)
aacraid: Host adapter reset request. SCSI hang ?

Кажется удалось решить ее путем low level форматирования всех винчестеров и пересоздания RAID массива путем Build/Verify. На 1 сервере данные действия были выполнены + была установлена новая ОС и вот уже более 11 суток сервер работает без проблем, а до этого стабильно на 9-ый день работы подвисал с ошибкой указанной выше. На этой неделе попробую провести данные работы на еще 3-х серверах, если это поможет, то проблема будет считаться решеной.

Какие действия предпринимались для выявления причины проблемы:

1) Замена контроллера.

2) Обновление прошивки контроллера.

3) Обновление драйверов ОС RHEL 5 для данного контроллера.

4) Переустанка ОС RHEL 5 на сервере.

5) Замена кабелей для подключения RAID контроллера к backplane и выставление джамперов на backplane в режим SGPIO.

6) Low level format всех винчестеров на сервере + пересоздание RAID массивов через Build/Verify.

Использование mrepo

Написал статью об использовании утилиты mrepo для создания локальной копии репозитория пакетов для дистрибутива Red Hat Linux Enterprise 5. Пока черновой вариант.

Прочитать можно на сайте проекта contrib.ru – Создание копии репозитория rpm пакетов при помощи mrepo.