21 августа 2015 г.

История одного долгоиграющего отчёта

Данным постом, я выполняю давно обещанное, но не выполненное. За что приношу свои извинения.

Этот пост написал и просил меня разместить у себя в блоге Дмитрий Бондарев.
Контакты Дмитрия: электронная почта: bdmalex@mail.ru, skype: bdmalex.
Стиль и пунктуация - автора.

История одного долгоиграющего отчёта
... или как сократить срок его выполнения не исправляя ни одной строки ABAP кода


   Существовал в нашей организации SAP ECC 6.0 на HP-UX платформе. И написали по какому-то ТЗ ABAP программисты отчёт дивный, который при запуске колбасил сервер и только после порядка 14 часов работы выдавал результат.

   Ушёл ABAP-программист с чувством выполненного долга в отпуск, и естественно начальство начало задавать вопросы базису: "Почему это работает так долго?".

   Начальственный заход для решения проблемы был простой: добавили в сервер ещё пяток ядер и немного ОЗУ. Запустили отчёт заново – и прослезились, никаких изменений.

   Запускаем отчёт с трассировкой и получаем следующие унылые результаты:
  • 98% времени уходит на работу на Сentral Instance (CI),
  • 2% времени уходит на работу и взаимодействие с базой данных (DB).
   Так как у нас CI и DB – это 2 разных сервера, я даже слегка расстроился. Мне сначала думалось, что проблема связана с большим временем работы на БД. А стало ясно, что игры с оптимизацией запросов никаких существенных профитов не принесут и оптимизировать надо именно то,что крутится на СI.

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



Выбираем класс "A" – и задание отрабатывает за 12 часов.
Всего на 7% меньше – но уже приятно!

   Дальше, переходим на сервер приложений и запускаем любимую команду top.
Выясняется, что существенный % времени занимает переключение задания между ядрами процессора. А что будет, если жёстко привязать задание к одному процессорному ядру и заставить его работать только там. Зачем тратить драгоценное время на скачки с одного ядра на другое?
Заходим сразу после запуска задания в SM66 (или SM50, ну в общем это дело вкуса) и выясняем необходимый нам PID (идентификатор процесса). Далее на HP-UX под нашим любимым пользователем <sid>adm  запускаем команду:
 > mpsched –c номер_процессорного ядра  –p PID 
   Смотрим результат: отчёт отработал за 10 часов.

Для других *nix-платформ команды привязки следующие:
  • bindprocessor для AIX
  • psrset для Solaris
  • taskset (+ chrt) для Linux
   В принципе, на этом можно было бы успокоиться, но ведь аппетит всегда приходит во время еды? Что ещё можно сделать, чтобы ускориться?

   Ну, а почему бы не повысить приоритет нашему процессу. Запускаем:
 > renice –n +20 –p PID 
   Смотрим результат: отчёт отрабатывает за 8 часов.

   Вот таким, совсем нехитрым способом, можно ускорить выполнение любого отчёта на многопроцессорной машинке с HP-UX (и не сомневаюсь, что аналогично можно сделать на любой *nix платформе, разве что запускаемые команды будут отличаться названием). В моём случае выигрыш составил порядка 42%, что на мой взгляд – вполне осязаемая и ощутимая величина.

Автор: Дмитрий Бондарев (e-mail: bdmalex@mail.ru, skype: bdmalex)


20 августа 2015 г.

HP-UX. Многоликая команда find

Командная строка операционной системы Unix, в данном случае HP-UX, очень удобный и мощный инструмент, если уметь им пользоваться.

В этом посте я писал, как настроить командную строку в HP-UX.
А тут я давал ссылку на краткую справку по текстовому редактору VI. Совершенно несложно освоить основной набор команд и не бояться работать в операционной системе. Я иногда, чисто машинально, пытаюсь использовать команды VI в блокноте операционной системы Windows. :)

Сегодня я хотел бы привести несколько комбинаций использования команды find в HP-UX, которые могут быть полезны.

Итак, первый вариант позволяет найти все файлы с именем core на сервере:
 # find / -type f -name core -exec ls -l {} \; 
Здесь первая опция указывает где производить поиск, вторая - выбирать только простые файлы, третья - шаблон для поиска имени файла, опция "-exec" позволяет выполнять команду с найденными файлами. В данном случае это просто вывод списка найденных файлов.

Второй вариант - поиск файлов больше определенного размера:
 # find ./ -type f -size +100000000c -exec ls -al {} \; 
 В данном случае поиск осуществляется в текущей директории, выборка идет только простых файлов, размером больше 100 Мб (опция -size +1000000000c). Полученный список отображается на экране (рис. 1).

Рис. 1. Результаты работа команды find.
 
Если необходимо удалить файлы (лучше всего с подтверждением для каждого файла), то использовать команду вида:
  # find ./ -type f -size +100000000c -exec rm -i {} \; 
Ну и последний полезный, на мой взгляд, вариант:
 # find ./ -type f -mtime +365 -exec ls -al {} \; 
В данном случае, команда выведет на экран список "старых" файлов, которые не модифицировались год (то есть дата модификации больше 356 дней).

Другие опции команды в документации man.

Если у вас есть свои полезные комбинации, пишите в комментариях.

Автор: Шиболов Вячеслав Анатольевич


17 августа 2015 г.

Гомогенное копирование системы SAP R/3 4.6C


В цикле постов про копирование SAP систем я уже рассказывал про основные этапы гомогенного копирования системы. Этому был посвящен вот этот пост. Там же была ссылка на инструкцию по гомогенному копированию системы SAP ERP 6.0 на платформе MS Windows 2003/Oracle 10g.

Данный пост относится к той же теме, но его еще можно назвать ностальгии-постом. :) Посмотрите на сриншот. Администраторы, которые воюют работают с системами компании SAP 10 лет или более, я уверен, сразу узнают его и пустят скупую слезу. :) Это утилита SAPINST, которая являлась лишь графическим окном к процессу установки системы - процессу R3SETUP.

Итак, сегодня я добавляю в свою коллекцию инструкций - инструкцию по гомогенному копированию системы SAP R/3 4.6С SR2 на платформе HP-UX 11.11 и ORACLE 8.1.7.

Особенности:
  • полностью описан процесс подготовки операционной системы HP-UX 11.11 к установке SAP системы и базы данных ORACLE.
  • приведена процедура по работе с программой установки системы SAP R/3 4.6C на операционную систему HP-UX.
  • в инструкции раскрыта процедура установки СУБД ORACLE 8.1.7 и обновлению её до версии 8.1.7.4.
  • описана процедура переноса базы данных ORACLE с использованием утилиты R3COPY и оффлайн бэкапа базы данных.
  • указаны шаги по пост-установочной настройке системы.
  • приведен список необходимых документов и SAP нот для установки и гомогенному копированию системы.

Данная версия системы до сих пор используется на некоторых предприятиях. Прекрасно работает и помогает им автоматизировать их финансово-хозяйственную деятельность. Хотя администрировать и поддерживать такие системы с каждым годом всё сложнее и страшнее. :)

Подробная инструкция (34 страницы) доступна по этой ссылке (zip-архив, 1540 Кб).

Я думаю, что данная инструкция поможет не только при гомогенном копировании, но и при установке системы SAP R/3 4.6C с нуля. В сети по таким старым вещам информации все меньше и меньше. Так что, надеюсь, что кому-то пригодится. :)

Страница со всеми инструкциями как всегда была оперативно обновлена.


Автор: Шиболов Вячеслав Анатольевич


7 августа 2015 г.

Как получить серийный номер сервера HP

Для удаленного получения серийного номера сервера, производства компании HP под управлением операционной системы HP-UX, необходимо выполнить команду:
 # getconf MACHINE_SERIAL 
Команда выдаст серийный номер, который необходим для открытия кейса в службе поддержки (рис. 1).

Рис. 1. Получение серийного номера сервера HP.

Иногда, когда нет физического доступа к серверной или лень идти, команда может быть полезной. :)

Другие полезные параметры команды:
  • KERNEL_BITS - выдает разрядность ядра системы,
  • MACHINE_MODEL - выдает модель сервера.

Автор: Шиболов Вячеслав Анатольевич