powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
19 сообщений из 19, страница 1 из 1
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39312956
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может ли DB2 на одном ядре одновременно обрабатывать несколько запросов разных приложений (из LIST APPLICATION)?

Если может, то как это включить?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313025
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего "включать" не надо. Если ядра недонагружены, а запросы выполняются долго, значит, затык где-то в другом месте. К примеру, при передаче по сети или при чтении с дисков. Типичные случаи - чтение большого количества строк по одной (что по сети, что курсор внутри курсора...), вместо того, чтобы читать и передавать большими пачками.

А ещё это может быть вина клиентской части, которая не справляется. К примеру, Java читает очень большой объём данных и конвертирует Win1251 в UNICODE - и что происходит? Работает медленно, причём клиентский процессор (одно ядро) загружен на 100%, а DB2 на вид вообще не нагружена. По этому поводу люди пишут многопоточные клиентские приложения, чтобы утилизировать все клиентские ядра.

Кроме того, вопрос в заголовке не соответствует вопросу в тексте. Одно (виртуальное) ядро одновременно ничего обрабатывать не может - хоть в DB2, хоть в чём-то другом.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313636
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том, что как мне кажется, DB2 не всегда эффективно использует доступные ядра, т.е. не грузит их полностью несколькими запросами разных приложений. Может это сложно сделать, но вроде бы KVM позволяет со снижением общей производительности (измеряемой при полной загрузке) создать виртуальных ядер больше, чем физических.

DB2 может грузить 4 ядра по 10% каждое.

И 8 ядер тоже по 10% каждое, что в результате увеличивает общую производительность.

Т.е. если бы KVM позволил на 4 физических ядрах сделать 8 виртуальных, то производительность бы повысилась несмотря на потери виртуализации, потому что DB2 нагружал бы большее количество ядер.

Вообще впечатление, что DB2 намного эффективнее работает на 256 ядерном процессоре с относительно слабыми ядрами (на уровне Atom), чем на самом топовом 4 ядерном проце, потому что в последнем случае эти 4 ядра были бы загружены всего лишь на несколько процентов.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313642
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если мое предположение из предыдущего сообщения верно и если KVM позволяет создавать vcpus больше, чем physical,
то наверно можно так ускорить DB2, создав на 8 физических ядрах в 4-5 раз больше виртуальных? Что позволило бы прогружать физические ядра почти на 100%. Но тогда вопрос про тяжелые запросы, как у них с распараллеливанием по отдельным ядрам?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313644
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишут, что магия vcpus>cpus IS POSSIBLE ессно не на ESXi ...

https://serverfault.com/questions/435231/can-kvm-cpu-assignment-count-differ-from-physical-hosts-cpu-count
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313739
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы пишете, как будто у вас цель не повысить производительность, а загрузить ядра. Ну, так напишите бесконечный цикл на SQL PL и запустите в N коннектах (N >= количество ядер) - вот вам и будет загрузка всех ядер на 100%. К производительности это имеет слабое отношение.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313823
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaВы пишете, как будто у вас цель не повысить производительность, а загрузить ядра. Ну, так напишите бесконечный цикл на SQL PL и запустите в N коннектах (N >= количество ядер) - вот вам и будет загрузка всех ядер на 100%. К производительности это имеет слабое отношение.

однако производительность приложение значительно улучшилась по словам пользователей после увеличения кол-ва ядер, но они что и раньше почти простаивали, что сейчас,

просто теперь их почти простаивает большее количество, чем раньше

иногда только видно на отдельных ядрах проскакивает большая нагрузка

как мне кажется KVM могла бы более эффективно распределить нагрузку на существующем железе при условии, если бы тяжелые запросы раскидывались по нескольким более слабым виртуальным ядрам

А вообще идеальным вариантом наверно было бы пробрасывание в виртуалку ядер разной производительности от обычных физических до нескольких слабых виртуальных, представленным одним физическим. Ядрам были бы присвоены рейтинги производительности и DB2 мог бы принимать решение на какое ядро отправлять запрос в зависимости от его оценки планировщиком.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313929
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Производительность не меряется ни загрузкой ядер, ни отзывами пользователей a la "стало получше".
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313980
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaПроизводительность не меряется ни загрузкой ядер, ни отзывами пользователей a la "стало получше".

Производительность конечно же меряется исключительно мониторингом, т.е. если db2top показывает, что все прекрасно, а пользователи жалуются на скорость работы, то производительность конечно же отличная, даже правильнее сказать прекрасная и превосходная!

Если же многие пользователи (не один) сообщили, что значительно повысилась скорость работы после наращивания количества ядер, то это не улучшение производительности, а всего лишь впечатление впечатлительных пользователей, так сказать их галюцинации, ессно никак не связанные с производительностью DB2, это я и так знаю.

При этом средняя загрузка каждого ядра проца колышется около 10%, что до, что после увеличения количества ядер.
Т.е. если бы физические ядра были бы загружены на 80% теми же рассчетами, пусть хотя бы за счет распараллеливания за счет KVM (вместо DB2), то их бы потребовалось, наверно, в 8 раз меньше ...
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39313992
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще где можно почитать относительно доступное объяснения, что именно DB2 может распараллеливать по ядрам CPU и в каких редакциях?

Т.е. может ли DB2:

1) Раскидать один тяжелый запрос одного APPLICATION одновременно по разным ядрам одного узла (хоста)?
2) Выполнять несколько легких запросов на одном ядре псевдоодновременно, т.е. чтобы утилизацизация ядра была не 5%-10%, а в N раз больше, где N=кол-во легких запросов от разных APPLICATION, выполняющихся на этом ядре псевдоодновременно, наверно из-за ожидания IO ?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314346
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickVictor MetelitsaПроизводительность не меряется ни загрузкой ядер, ни отзывами пользователей a la "стало получше".
Производительность конечно же меряется исключительно мониторингом, т.е. если db2top показывает, что все прекрасно, а пользователи жалуются на скорость работы, то производительность конечно же отличная, даже правильнее сказать прекрасная и превосходная!

Производительность не меряется мониторингом.
Если же многие пользователи (не один) сообщили, что значительно повысилась скорость работы после наращивания количества ядер, то это не улучшение производительности, а всего лишь впечатление впечатлительных пользователей, так сказать их галюцинации, ессно никак не связанные с производительностью DB2, это я и так знаю.

Может быть и галлюцинацией, запросто. Или вызвано совершенно посторонними факторами.
При этом средняя загрузка каждого ядра проца колышется около 10%, что до, что после увеличения количества ядер.
Т.е. если бы физические ядра были бы загружены на 80% теми же рассчетами, пусть хотя бы за счет распараллеливания за счет KVM (вместо DB2), то их бы потребовалось, наверно, в 8 раз меньше ...
Вы занимаетесь поисками под фонарём. Такое впечатление, что вы даже про iostat не слышали.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314359
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickВообще где можно почитать относительно доступное объяснения, что именно DB2 может распараллеливать по ядрам CPU и в каких редакциях?

Т.е. может ли DB2:

1) Раскидать один тяжелый запрос одного APPLICATION одновременно по разным ядрам одного узла (хоста)?

Может, на Enterprise Edition при соответствующих настройках. (На самом деле я даже на Expess-C включал). Вам не рекомендую.
2) Выполнять несколько легких запросов на одном ядре псевдоодновременно, т.е. чтобы утилизацизация ядра была не 5%-10%, а в N раз больше, где N=кол-во легких запросов от разных APPLICATION, выполняющихся на этом ядре псевдоодновременно, наверно из-за ожидания IO ?
Это, вообще-то, норма - и не только для СУБД.
Ну, может, у вас асинхронный доступ к файловой системе не включён. Это как бы не DB2 проблема.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314375
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да неважно там с файловой системой. Распределением процессов/нитей по ядрам занимается операционная система. Именно она, когда процесс чего-то ждёт, отдаёт ядро другому процессу. DB2 может... ну, сказать ОС, что можно использовать только столько-то ядер, потому что лицензия не позволяет.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314432
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Victor Metelitsa]dbtwoshnickНу, может, у вас асинхронный доступ к файловой системе не включён. Это как бы не DB2 проблема.

Пожалуйста, подскажите, где про это можно подробнее почитать?
Что за асинхронный доступ к файловой системе?
Чей доступ, где он включается?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314460
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaВы занимаетесь поисками под фонарём. Такое впечатление, что вы даже про iostat не слышали.

в iostat смотрел утилизацию дисков, она сейчас от 50% до 80% примерно пляшет для HDD и от 5% до 10% для SSD
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314591
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbtwoshnickВообще где можно почитать относительно доступное объяснения, что именно DB2 может распараллеливать по ядрам CPU и в каких редакциях?

Т.е. может ли DB2:

1) Раскидать один тяжелый запрос одного APPLICATION одновременно по разным ядрам одного узла (хоста)?
2) Выполнять несколько легких запросов на одном ядре псевдоодновременно, т.е. чтобы утилизацизация ядра была не 5%-10%, а в N раз больше, где N=кол-во легких запросов от разных APPLICATION, выполняющихся на этом ядре псевдоодновременно, наверно из-за ожидания IO ?Любой потьзовательский запрос на стороне сервера обрабатывается т.н. агентами. Не касаясь MPP архитектуры: выставив параметр экземпляра INTRA_PARALLEL в YES (ну и там дополнительно включить параметр MAX_QUERYDEGREE и установить CURRENT DEGREE в сессии/параметр DFT_DEGREE базы), можно разрешить db2 обрабатывать ваш запрос несколькими агентами. Оптимизатор может в этом случае использовать для выполнения запроса столько агентов, сколько посчитает нужным (в рамках заданных параметрами ограничений, если надо). Если INTRA_PARALLEL не выставлен, то запрос будет обрабатываться 1-м агентом. Не надо думать, что чем больше агентов обрабатывает произвольный запрос, тем лучше. Это, как правило, справедливо для тяжелых запросов. Транзакционным запросам это часто вредит.
Агенты выполняются каждый в своей нити ОС. Как уже было сказано, DB2 не занимается рассылкой своих нитей на конкретные процессоры - этим занимается ОС. DB2 может только "привязать" свои нити к определенной группе процессоров из-за лицензионных ограничений, например, или в очень больших системах с NUMA архитектурой.

Поэтому, когда вы говорите, что при той же нагрузке DB2 использует бОльшее кол-во процессоров, загружая их на те же 10%, то здесь DB2 не виновата в этой мистике.
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314601
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дополнительный внешним фактором, который теоретически мог повлиять на производительность системы в целом, было одновременное увеличение количества ядер и на вебсфере тоже (другой хост), может быть повлияло это?

Или сфера так же как и DB2 с помощью операционки должна сначала малое кол-во ядер загрузить на все 100%, чтобы увеличение количества ядер дало хоть какой-то положительный эффект?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314904
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickДополнительный внешним фактором, который теоретически мог повлиять на производительность системы в целом, было одновременное увеличение количества ядер и на вебсфере тоже (другой хост), может быть повлияло это?
И как после этого разговаривать?
...
Рейтинг: 0 / 0
Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
    #39314906
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPbdbtwoshnickДополнительный внешним фактором, который теоретически мог повлиять на производительность системы в целом, было одновременное увеличение количества ядер и на вебсфере тоже (другой хост), может быть повлияло это?
И как после этого разговаривать?

ну простите, я же писал, что нуб

и потом, получается, что сфера как-то по своему ядра распределяет, не как операционка того пожелает?

CPU обоих серверов (сфера и db2) даже при малом количестве ядер были недонагружены,

top который показывает общую нагрузку на все ядра в целом показывал обычно меньше 50% на сфере, как удвоение количества ядер в таком случае могло улучшить ситуацию?

наверно, надо будет запустить какой-нибудь сборщик статистики за период времени и померять с разным количеством ядер на обоих серверах?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Почему DB2 не грузит каждое ядро полностью при малом количестве ядер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]