К основному контенту

Диагностика работы дисковой подсистемы БД Oracle

Заказчик подозревает проблемы в работе дисковой подсистемы своих центральных серверов БД.
Задача: подтвердить или опровергнуть подозрение.

Определение проблем в работе подсистеме ввода/вывода.
События ожидания Oracle, свидетельствующие о наличии возможных проблем в дисковой подсистеме:
db file sequential read
db file scattered read
read by other session
db file async i/o submit
direct path read
direct path write / direct path write temp
db file parallel read
async disk IO | ksfd: async disk IO
control file sequential read

Также о проблемах подсистемы ввода вывода могут свидетельствовать следующие события, связанные с обработкой REDO логов:
log file sync
log file switch completion
log file switch (checkpoint incomplete)
{ARCH | LGWR | LNS} wait on ATTACH
{ARCH | LGWR | LNS} wait on SENDREQ
{ARCH | LGWR | LNS} wait on DETACH
LGWR-LNS wait on channel

Основным средством диагностики работы дисковой подсистемы и связанных с ней проблем являются отчеты AWR и ASH. Внимание следует обратить на  разделы: Top 5 Timed Foreground Event (AWR) и Top User Events (ASH).
Пример системы, имеющей проблемы в работе дисковой подсистемы (i/o-bound):
Top 5 Timed Events
                                                      % Total
Event                            Waits    Time (s) Ela Time
--------------------------- ------------ ----------- --------
db file sequential read            2,598       7,146    48.54
db file scattered read            25,519       3,246    22.04
library cache load lock              673       1,363     9.26
CPU time                              44       1,154     7.83
log file parallel write           19,157         837     5.68

Текущее состояние дисковой подсистемы на центральных серверах заказчика.
Фрагмент отчета AWR (Top 5 Timed Foreground Events) по основным событиям ожидания на сервере XP-01 в период пиковой нагрузки.

Event Waits Time(s) Avg.wait (ms) %DB time Wait Class
DB CPU 1342659 70,3
db file sequential read 28217784 186771 7 9,08 User I/O
Replication Dequeue 1058652 58566 55 3,01 Other
SQL*Net message from dblink 869053 25653 30 1,03 Network
latch: shared pool 182601 24521 134 1,03 Concurrency

Из приведенных данных можно сделать вывод, что операции ввода вывода не оказывают существенного влияния на работу центральных серверов. Так, среднее время ожидания дисковых операций составляет от 2 до 7 миллисекунд.

Комментарии

Популярные сообщения из этого блога

Установка и настройка pgAgent(планировщика заданий PostgreSQL)

Установка pgAgent Последняя версия скрипта для установки агента  тут . Перенести инструкцию по агенту в отдельную тему. 1. Создать пользователя ОС, и сделать ему домашний каталог: useradd -s /bin/false -r -M pgagent mkdir /home/pgagent 2. Установить и настроить демон: yum install pgagent_94 При наличии ошибок вида (была на Oracle Linux 6.8) Error: Package: pgagent_94-3.4.0-1.rhel6.x86_64 (pgdg94)            Requires: libwx_baseu-2.8.so.0(WXU_2.8)(64bit) Нужно установить EPEL systemctl enable pgagent_94 chown pgagent:pgagent /var/log/pgagent_94.log 3. Установить схему агента в базе: sudo -u postgres psql -f /usr/share/pgagent_94-3.4.0/pgagent.sql postgres 4. Создать файл паролей для подключения агента к базе. vi /home/pgagent/.pgpass localhost:5432:*:postgres:postgres chown pgagent.pgagent /home/pgagent -R chmod 600 /home/pagent/.pgpass 5. Запустить и проверить работу агента systemctl start pgagent...

Включение логирования для Haproxy

Изначально логирование в syslog в HaProxy отключено. Ниже пример настройки логирования для ОС Centos 7. Настройка: Добавить строку  log 127.0.0.1 local2 в секцию global файла /etc/haproxy/haproxy.cfg Раскомментировать $ModLoad imudp и $UDPServerRun 514 в файле  /etc/rsyslog.conf Создать файл  /etc/rsyslog.d/haproxy.conf со следующим содержимым:  local2.* /var/log/haproxy.log Перезапустить rsyslog и haproxy.

Установка PL/Java для PostgreSQL 9.4

Предварительные требования:  1. Компилятор C. Как правило имеется в виду gcc и g++ gcc  --version на CENTOS 7 мне понадобился gcc_c++ (в дополнение к установленному ранее gcc) 2. JAVA. Убедиться, что  javac  -version работает  3. PostgreSQL установлен и  работает pg_config Файлы для разработки (.h файлы) для нашего PostgreSQL также должны быть установлены. Убедиться можно посмотрев что лежит в INCLUDEDIR-SERVER (вывод pg_config). Я раньше компилировал БД из исходников на этой машине, так что у меня эти файлы были. 4. компилятор Maven mvn --version Установка git clone https://github.com/tada/pljava.git или git clone ssh://git@github.com/tada/pljava.git Заходим в директорию pljava и выполняем mvn clean install В результате должны получить: [INFO] PostgreSQL PL/Java ................................ SUCCESS [INFO] PL/Java API ....................................... SUCCESS [INFO] PL/Java backend Java code...