Параллельная обработка ввода/вывода, запросов и индексов AS400

IBM V6.1

При использовании системного навигатора I и щелчке по Системным значениям отображается следующее.

введите здесь описание изображения

По умолчанию выбран Do not allow parallel processing.

Как повлияет на обработку в программах, когда вы выберете несколько процессов, у нас есть много программ rpgiv и выполняемых запросов sql, и я думаю, что это повысит производительность?

По сути, я хочу включить это в производственной среде, но не уверен, что я что-нибудь сломаю, выполнив это, например, ввод или вывод различных программ, работающих параллельно, или данные, выходящие из последовательности?

Я провел небольшое исследование:

https://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rzakz/rzakzqqrydegree.htm

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


person Renier    schedule 13.09.2016    source источник
comment
Влияние параллелизма в основном зависит от выполняемой рабочей нагрузки, поэтому единственный надежный способ выяснить влияние его включения — это протестировать его на вашей рабочей нагрузке (у вас ведь есть тестовая среда, не так ли).   -  person mustaccio    schedule 13.09.2016
comment
Да, у меня есть DEV и TEST, но рабочая нагрузка не такая же и не такая большая, как в производственной среде, поэтому я включил ее в DEV и запустил SQL, но не увидел разницы.   -  person Renier    schedule 13.09.2016
comment
Есть ли риск включить его в производство?   -  person Renier    schedule 13.09.2016


Ответы (1)


Во-первых, чтобы получить максимальную отдачу от *MAX и *OPTIMIZE, вам потребуется система с более чем одним ядром (с поддержкой IBM i / DB2) вместе с симметричной многопроцессорной обработкой DB2 (SMP) (57xx- SS1 вариант 26) установлена ​​лицензионная программа; что позволяет системе использовать SMP для запросов и построения индексов.

Для *IO система может использовать несколько задач с помощью одновременной многопоточности (SMT) даже на одноядерном блоке POWER 5 или выше. SMT включается с помощью системного значения Многозадачность процессора (QPRCMLTTSK).

Вы вряд ли что-то «сломаете», изменив значение. Пока ваши приложения не делают неверных предположений о порядке набора результатов. Например, CPYxxxIMPF за кулисами использует SQL; с чем угодно, кроме *NONE, вы можете получить строки в таблице DB2 в другом порядке, чем строки в файле импорта.

Вы, безусловно, увеличите загрузку ЦП. Это неплохая вещь; если вы в настоящее время не используете 90% + загрузку ЦП регулярно. Если вы используете только 50% своего ЦП, вероятно, лучше использовать SMT/SMP, чтобы обеспечить лучшее время отклика, даже если это увеличивает загрузку ЦП до 60%.

Сказав это, вот история о том, что это проблема... http://archive.midrange.com/midrange-l/200304/msg01338.html

Обратите внимание, что в приведенном выше случае OP предварительно создавал рабочие таблицы при входе в систему, чтобы свести к минимуму ожидание, когда пришло время их использовать. Отличная идея 20-летней давности с однопоточными системами. Сегодня альтернативой было бы использование преимуществ SMP/SMT и создание только того, что необходимо, когда это необходимо.

Как вы заметили в комментарии, такие изменения трудно тестировать в непроизводственных средах, поскольку рабочие нагрузки в DEV и TEST различаются. Поэтому важно собрать хорошие данные о производительности до и после изменения. Вы также можете рассмотреть возможность перемещения его этапов *NONE --> *IO --> *OPTIMIZE, а затем *MAX, если хотите. Я бы провел по крайней мере месяц на каждом уровне, если у вас есть периодическая работа в конце месяца.

person Charles    schedule 13.09.2016