Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть сервер db2 на платформе Windows 2008 R2 Enterprise. На нем крутится база специализированного веб-приложения сторонних разработчиков. Пользователи жалуются на низкую скорость работы этого приложения. В процессе выяснения причин снижения производительности обратили внимание на странный факт: картинка загрузки процессоров в Task Manager в Windows выглядит так, как будто бы из 16 ниток нагружены только 8 (скриншот приложен). Физически в сервере установлены 2 Intel Xeon E5640, 4 ядра/8 ниток каждый. Конечно, это всего лишь загрузка процессора в интерпретации Windows, картинка. Но на других серверах такого нет. Это нормально? Как понять, задействует ли db/2 все ресурсы? Вывод команды db2pd -osinfo: Operating System Information: OSName: WIN32_NT NodeName: SW07500008002KS Version: 6.1 Release: Service Pack 1 Machine: AMD64 Family 6, model 44, stepping 2 CPU Information: TotalCPU OnlineCPU ConfigCPU Speed(MHz) HMTDegree Cores/Socket 16 16 16 2666 2 1 Physical Memory and Swap (Megabytes): TotalMem FreeMem AvailMem TotalSwap FreeSwap 49144 28582 28582 49142 49142 Virtual Memory (Megabytes): Total Reserved Available Free 98286 n/a n/a 77715 Вывод команды db2licm -l show detail: Имя продукта: "DB2 Workgroup Server Edition" Тип лицензии: "Опция по числу гнезд" Дата истечения срока: "Постоянно" Идентификатор продукта: "db2wse" Информация о версии: "9.7" Максимальный объем памяти (Гбайт): "64" Правила ограничений: "Мягкая остановка" Имя продукта: "Сервер DB2 Connect" Дата истечения срока: "Срок истек" Идентификатор продукта: "db2consv" Информация о версии: "9.7" Правила для числа одновременных пользователей Connect: "Отключено" Правила ограничений: "Мягкая остановка" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 12:09 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975, "В лоб" по-быстрому посмотреть - во время нагрузки и жалоб пользователей поизучать вывод: Код: sql 1. + Посмотреть помимо загрузки проца нагрузку на диски (в частности размер дисковых очередей) в ресурс-мониторе. Более детально: 1. В начале некоторого промежутка тестирования: Код: sql 1. 2. В конце: Код: sql 1. 2. 3. 4. 5. 6. или Код: sql 1. 2. 3. Дальше поизучать результат: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Можно ещё посмотреть группируя по части STMT_TEXT, если непараметризованных запросов много и они съедают существенное время. Если не жалко своими SQL запросами поделиться (возможно с некоторыми данными), то можно просто приложить полученные pkg_cache.ixf и pkg_cache.lob Во многих случаях анализа этих данных будет достаточно. Только что пример перед глазами был, когда один кривой запрос (предикат по "UPPER(<поле>) = значение") поднимал у БД нагрузку на CPU в 10-20 раз (отличился IBM BPM). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 13:11 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975В процессе выяснения причин снижения производительности обратили внимание на странный факт: картинка загрузки процессоров в Task Manager в Windows выглядит так, как будто бы из 16 ниток нагружены только 8 (скриншот приложен). Физически в сервере установлены 2 Intel Xeon E5640, 4 ядра/8 ниток каждый. Конечно, это всего лишь загрузка процессора в интерпретации Windows, картинка. Но на других серверах такого нет. Это нормально? Как понять, задействует ли db/2 все ресурсы? в WSE нет intra_parallel поэтому каждый запрос выполняется только одним core/thread чтобы задействовать все CPU придется увеличивать число юзеров/сессий :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 14:07 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
mitek, в конфиге вообще есть параллелизм и он включен. Макс. уровень параллелизма запроса (MAX_QUERYDEGREE) = ANY Разрешить внутрираздельный параллелизм (INTRA_PARALLEL) = YES ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 14:19 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975, PS Да, при "per socket" лицензировании у WSE ограничение - 4 ядра. Так что один проц можно выкинуть (или переходить на лицензирование по PVU). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 15:15 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975mitek, в конфиге вообще есть параллелизм и он включен. Макс. уровень параллелизма запроса (MAX_QUERYDEGREE) = ANY Разрешить внутрираздельный параллелизм (INTRA_PARALLEL) = YES а реально работает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 15:40 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
CawaSPbStas975, PS Да, при "per socket" лицензировании у WSE ограничение - 4 ядра. Так что один проц можно выкинуть (или переходить на лицензирование по PVU). вродеж было только 16-core всего лимит на WSE есть ссылка где почитать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 15:42 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
mitekStas975mitek, в конфиге вообще есть параллелизм и он включен. Макс. уровень параллелизма запроса (MAX_QUERYDEGREE) = ANY Разрешить внутрираздельный параллелизм (INTRA_PARALLEL) = YES а реально работает ? А как проверить? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 15:45 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
CawaSPbStas975, PS Да, при "per socket" лицензировании у WSE ограничение - 4 ядра. Так что один проц можно выкинуть (или переходить на лицензирование по PVU). Вот очень похоже, что дело в этом. Только как бы убедиться? За лицензиями дело не станет, они есть. IBM пишет про ограничение в 4 "гнезда", имея в виду под "гнездом" сокет с процессором на любое (?) число ядер: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 15:48 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975, Да, конечно, наврал. Сокет - по физическим процессорам. Т.е. с ограничением на 4 сокета этот тип лицензирования подойдёт. А вот на сколько сокетов у вас лицензия - вопрос. Видимо на один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 16:02 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
[quot mitek]CawaSPbStas975, вродеж было только 16-core всего лимит на WSE есть ссылка где почитать ? вот нашел Limited Use Socket Sub-capacity Licensing Guide но про лимит 4 cores per socket вроде бы ничего нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 16:11 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
CawaSPbStas975, Да, конечно, наврал. Сокет - по физическим процессорам. Т.е. с ограничением на 4 сокета этот тип лицензирования подойдёт. А вот на сколько сокетов у вас лицензия - вопрос. Видимо на один. По документам - на два. А фактически сколько установлено, как посмотреть? db2licm -g lic.txt выдает неприятное: Отчет о соответствии лицензиям DB2 Workgroup Server Edition Нарушение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 16:12 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975А как проверить? :) как вариант : set current degree = '4'; select count(*) from table; и смотреть утилизацию тредов/ядер во время выполнения можно глянуть есть ли : db2pd -db <DBNAME> -edus | grep db2agntp в количестве соответствующем указанному degree ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 16:18 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
mitekвот нашел Limited Use Socket Sub-capacity Licensing Guide но про лимит 4 cores per socket вроде бы ничего нет Непонятно, как этот документ привязан к версии. От версии к версии лимиты менялись. Вот по 9.7: http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.licensing.doc/doc/c0056286.html Информацию по привязке к ядрам/процам можно попробовать поискать в db2diag.log где-нибудь в районе выполнения db2start. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 18:09 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
[quot CawaSPb]mitek Информацию по привязке к ядрам/процам можно попробовать поискать в db2diag.log где-нибудь в районе выполнения db2start. В db2diag.log вот что: DATA #1 : Build Level, 152 bytes Instance "DB2" uses "64" bits and DB2 code release "SQL09077" with level identifier "08080107". Informational tokens are "DB2 v9.7.700.552", "s121002", "IP23369", Fix Pack "7". DATA #2 : System Info, 1568 bytes System: WIN32_NT SW07500008002KS Service Pack 1 6.1 AMD64 Family 6, model 44, stepping 2 CPU: total:16 online:16 Cores per socket:1 Threading degree per core:2 Как вообще определять, сколько лицензий корректно загружено и хватает ли их для данного конкретного железа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 06:35 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975, Добрый день. DB2 WSE: В коде зашито, что оно может использовать только первые 16 ядер в системе. Вы не можете использовать INTRA_PARALLEL=YES из-за лицензионных ограничений. Именно поэтому у вас светится нарушение лицензии. Но включить вы это можете, и оно даже может работать, если оптимизатор решит, что это нужно. Другой вопрос - действительно ли это нужно вашему веб-приложению, все-таки этот прараметр устанавливают обычно для аналитической нагрузки. Нет понятия "количество загруженных сокетных лицензий". В сокетной лицензии нет количества пролицензированных сокетов. Вы сами должны следить за тем, что в системе не используется больше сокетов, чем то количество, за которое вы заплатили. Посмотреть, используется ли для запроса из кэша параллелизм можно так: Код: sql 1. 2. 3. 4. 5. DB2 не привязывает нить к конкретному ядру или нити ЦПУ, это задача планировщика ОС - распределить выполняться нить туда, куда ОС посчитает наиболее оптимальным. В данном случае я не вижу никакого криминала - у вас нет нитей, загруженных на 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 11:41 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Mark Barinstein! Mark BarinsteinStas975, В сокетной лицензии нет количества пролицензированных сокетов. Это означает, что вне зависимости от количества приобретенных лицензий lic-файл всегда будет один и внутри него всегда будет написано LicenseCount=1? Относительно запроса: мы его выполнили и получили по всей выборке в колонке DEGREE значение 1. Что, видимо, прозрачно намекает на неиспользование параллелизма. Так может его и в конфигурации отключить тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 12:24 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975, А в сторону вебсферы не смотрели? может быть проблема вовсе не в DB2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2014, 20:34 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinDB2 WSE: В коде зашито, что оно может использовать только первые 16 ядер в системе. Mark Barinstein, правильно ли я понял? У WSE 9.7 есть внутреннее программное ограничение на использование максимум 16 ядер в системе? Если реальное количество ядер больше, то DB2 WSE будет использовать только 16? И ограничение в 16 ядер никак не зависит от лицензии? Mark BarinsteinНет понятия "количество загруженных сокетных лицензий". В сокетной лицензии нет количества пролицензированных сокетов. Вы сами должны следить за тем, что в системе не используется больше сокетов, чем то количество, за которое вы заплатили. А как быть с ситуацией, когда DB2 WSE с сокетной лицензией устанавливается (извините, может неправильно выражусь) на виртуальном сервере VMWare на базе гипервизора, который имеет сокетов больше, чем предусмотрено сокетной лицензией DB2? Это будет нарушением лицензии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2014, 19:34 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Semen PopovА как быть с ситуацией, когда DB2 WSE с сокетной лицензией устанавливается (извините, может неправильно выражусь) на виртуальном сервере VMWare на базе гипервизора, который имеет сокетов больше, чем предусмотрено сокетной лицензией DB2? Это будет нарушением лицензии? Посмотрите ссылку, что я приводил выше. Там есть подобные случаи. Как пример : 4-х сокетный сервер на xeon e7 10 core. Cоздана VM с 2-мя "сокетами" по 8-м "ядер". Cогласно формуле получаем (2*8)/10=1.6 "сокета", т.е 2. Соответственно 2 LUS-лицензии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2014, 22:33 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
mitek, спасибо. Посмотрел Вашу ссылку, и не нашел, какой пример можно применить вот для такого случая. Есть физический сервер с 2-мя процами (сокетами) по 6 ядер. На сервере установлена одна ОС (не виртуальная). Но система видит ядер в два раза больше (24), чем их физическое количество, потому что в БИОСе включен так называемый гипертрейдинг. Какое количество LUS-лицензий потребуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 11:48 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Semen Popov Есть физический сервер с 2-мя процами (сокетами) по 6 ядер. На сервере установлена одна ОС (не виртуальная). Но система видит ядер в два раза больше (24), чем их физическое количество, потому что в БИОСе включен так называемый гипертрейдинг. Какое количество LUS-лицензий потребуется? две ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 12:05 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
Stas975Mark BarinsteinStas975, В сокетной лицензии нет количества пролицензированных сокетов. Это означает, что вне зависимости от количества приобретенных лицензий lic-файл всегда будет один и внутри него всегда будет написано LicenseCount=1?Я никогда не видел lic файлов, в которых указывается LicenseCount отличное от 1. Если кто-то видел, сообщите. Stas975Относительно запроса: мы его выполнили и получили по всей выборке в колонке DEGREE значение 1. Что, видимо, прозрачно намекает на неиспользование параллелизма. Так может его и в конфигурации отключить тогда?Вы должны его отключить, если не хотите нарушать лицензионное соглашение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:03 |
|
||
|
Нагрузка на CPU сервера Db2
|
|||
|---|---|---|---|
|
#18+
mitekSemen Popov Есть физический сервер с 2-мя процами (сокетами) по 6 ядер. На сервере установлена одна ОС (не виртуальная). Но система видит ядер в два раза больше (24), чем их физическое количество, потому что в БИОСе включен так называемый гипертрейдинг. Какое количество LUS-лицензий потребуется? двеПо какой формуле считали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:18 |
|
||
|
|

start [/forum/search_topic.php?author=%26%23214%3B&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 185ms |
| total: | 483ms |

| 0 / 0 |
