Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Помогите разобраться с проблемой. Ensemble 2010 установлена на машинах примерно одинаковой конфигурации, настройки Ensemble одинаковы на тестовых машинах. Одна машина с Win2003, другая с Win7, третья с WinXP. В базе данных имеется тестовая глобаль ^A размером около 800Мб. Первоначально в настройках Ensemble было выделено 1,5Гб для 8К баз данных. На первом уровне глобали порядка 850,000 элементов. Запускаем цикл: s i="" f c=1:1:850000 s i=$O(^A(i)) q:i="" На Win7 при первом запуске цикл отрабратывает примерно за ~25 секунд, последующие запуски - менее 1 секунды. На Win2003 чуть быстрее (сам компьютер чуть быстрее). На WinXP, что первый, что последующие запуски - более 10 минут. Компьютер чуть быстрее, чем под управлением Win7. Настройки памяти Ensemble никак не смогли ускорить процесс. Вопрос. Это проблема XP? Возможно как-то настроить XP, чтобы увеличить производительность? Возможно как-то настроить Ensemble, чтобы увеличить производительность? На всех тестовых компьютерах - 32-битные ОС. Заметил еще такую особенность, при запуске вычислений, использующих глобаль ^A, на XP процесс "отъедает" память вплоть до 1Гб (если верить Windows Task Manager) и столько же "съедает" WriteDaemon (идет запись в глобаль после вычислений), на Win2007 и Win7 Windows Task Manager показывает не более 4Мб на каше процессы. Соответственно, учитывая вычисления, загрузка процессоров Win2007 и Win7 близка к 100%, но на XP загрузка процессора 0-10%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 11:43 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Посмотрите в диспетчере задач - производительность, не выделено ли памяти больше, чем физической. Если так, то это скорее всего и есть ответ на ваш 1-ый вопрос. Остановите Cachе и посмотрите, сколько у вас свободной _физической_ памяти. Должно быть >= (кэш_программ + кэш_глобалов + ~ 512Mb) Оптимизация XP: где-то в свойствах компьютера - дополнительно - есть выбор "файл-сервер" - "сервер приложений". Выберите второе. Где-то там же: "оптимизировать для работы фоновых программ". Подправив (при необходимости) размер кэша глобалов, перезагрузите Windows. Снова посмотрите, не выделено ли памяти больше, чем физической. Посмотрите в ...\mgr\cconsole.log, сколько памяти получила Cache. Сообщение выглядит примерно так: 02/22/11-10:04:35:910 (0) 0 Allocated 1166MB shared memory: 1024MB global buffers, 64MB routine buffers в версиях <= 2010.1 есть еще приписка "as large pages". В общем, "large pages" - это хорошо (подробности см. в док-ии). По поводу разных значений памяти в колонках диспетчера задач: просто разный дефолтный набор столбцов в разных ОС. Замените в W7 "Память - частный рабочий набор" на "Память - рабочий набор", и увидите ту же картину, что в XP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 12:21 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Добавлю: как и предыдущие версии, 2010.2 пишет о больших страницах, если не смогла их получить, например: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 12:33 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Памяти точно не выделено больше, чем физической (на компе 4Гб, хотя XP видит только 3+Гб), но перепроверю, когда будет доступ к системе, спасибо за наводку. Но пробовал от 100Мб до 2Гб выделять для Ensemble - без результатно. Оптимизацию для фоновых процессов не делал, потому что на Win7 ее тоже нет. В cconsole.log никаких подозрительных записей (вернее, после старта Ensemble вообще никаких). Насчет памяти в Win7 Task Manager вы правы - Ensemble "ест" столько же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 12:44 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Зато на Win7 обнаружил: 02/22-10:56:27:474 (0) 1 Failed to allocate 2036MB shared memory using large pages. Switching to small pages. 02/22-10:56:27:482 (0) 1 Failed to allocate 2032MB shared memory: 1920MB global buffers, 20MB routine buffers 02/22-10:56:27:482 (0) 1 Allocated 1536MB shared memory: 1440MB global buffers, 18MB routine buffers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 12:48 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
А.В.Но пробовал от 100Мб до 2Гб выделять для Ensemble - без результатноЧто значит - "безрезультатно"? Скорость на тесте не меняется? А вот это:log02/22-10:56:27:474 (0) 1 Failed to allocate 2036MB shared memory using large pages. Switching to small pages. 02/22-10:56:27:482 (0) 1 Failed to allocate 2032MB shared memory: 1920MB global buffers, 20MB routine buffers 02/22-10:56:27:482 (0) 1 Allocated 1536MB shared memory: 1440MB global buffers, 18MB routine buffers абсолютно нормально, более 1.5Гб разделяемой памяти на x32 платформе Cache не захватить. Попробуйте указать сразу значение поменьше, чтобы вписаться в 1.5Гб, может быть тогда (после перезагрузки ОС) Windows отдаст память большими страницами (хотя у меня на Windows7/x32 этот фокус не прошёл). Впрочем, для ваших опытов большие страницы не столь важны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:11 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
В Windows Server 2008 R2 x64 каше 2009.1.6 выделить с первого раза смогло только 32Гб оперативки, чтобы выделило больше, нужно увеличить файл подкачки до размера выделяемого пространства, причем выделить сразу столько может только при старте. Это фича винды, разбирались на WRC. Причем у меня сомнения, что оно использует всю память, по крайней мере по одном процессе разогнать объем используемого кэша сколько-нибудь серьезно не получилось. 32х разрядная каше берет только 2Гб памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:18 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Временно нету доступа к XP системе, поэтому проделал несколько экспериментов на Win7. Пробовал уменьшать настройки памяти, но больших страниц так и не получил. Но это действительно не суть. В случае, когда для баз данных отведено места меньше, чем объем глобали ^A, то глобаль не кэшируется, и каждый запуск цикла длится около 25 секунд. В случае, когда объем выделенный для баз данных вмещает целиком ^A, каждый последующий запуск цикла длится менее секунды, что логично. Проблема в том, что вчера на XP системе мне не удалось уложиться даже в 10 минут при различных настройках памяти в Ensemble. Пытаюсь понять - это проблема конкретной системы или все таки ОС. Буду создавать еще одну систему для теста, но, может быть, кто-то уже тестировал различные ОС и видел или не видел отличий в производительности? Насколько я помню в Cache 5 и WinXP подобных проблем не замечал. Более новые версии Cache/Ensemble в WinXP ранее не запускал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:22 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Блок А.Н., проблема, что есть три Win32: 2003, 7 и XP, первые две работают так, как по логике и положена, а вот XP конкретно тормозит. Для нормальной работы приложения достаточно 1,2Гб для Cache, соответственно, Win32 должно хватать (что я и вижу на двух системах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:24 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Николай Жохов(консультант ИС) сильно ругал механизм выделения памяти в винде. Кстати, попробуйте выделить память для каше при перезагрузке. Возможно, из-за фрагментации не может выделить большой кусок. И своп-файл сделайте размером с физическую память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:27 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Николай Жохов(консультант ИС) сильно ругал механизм выделения памяти в винде. Кстати, попробуйте выделить память для каше при перезагрузке. Что вы имеете ввиду? Просто перезапустить Windows? Блок А.Н.Возможно, из-за фрагментации не может выделить большой кусок. И своп-файл сделайте размером с физическую память. Сейчас он такой и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:32 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
А.В., Да, и чтобы каше была в автозапуске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:33 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.по крайней мере по одном процессе разогнать объем используемого кэша сколько-нибудь серьезно не получилосьНа искусственном примере вполне себе можно (e.g. $query()+$get() по всем глобалам базы :) Насчёт размера файла подкачки: спасибо за наводку, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 13:37 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Мы смотрели в разделе "Системные показатели - статистика по дискам и буферам". Уж не помню, что именно мы приняли за число активных блоков кэша, но при линейном чтении больших объемов данных буфер очень быстро освобождается от старых данных далеко до окончания свободных блоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 14:11 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Слышал в кулуарах пару лет назад, что на платформе x64 задавать кэш глобалов более 4Гб нет смысла (уже не помню, шла ли речь о Windows, или вообще). Сам пока не пробовал, т.к. пока не требовалось: на наших задачах, если хотя бы 1/3 БД влезает в кэш, то физических чтений становится мало, и эффективность кэша ~ 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 15:00 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
А.В. , Какова ситуация с автоматически выделяемой памятью вместо ручного выделения? Какова у Вас сейчас Эффективность кэша / Cache Efficiency ? PS: у меня на XP c 2Гб физической памяти глобал с 10млн. узлов обходится за 3.6 сек. и создаётся <1мин. PPS: Determine Number of Global Buffers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 15:56 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Alexey Maslov, Возможно, как раз наоборот, на 64x разрядных нет смысла делать кэш меньше 4 Гб? Потому что расход памяти увеличивается в некоторых случаях почти в два раза, а 2Гб можно и на 32 разрядной системе выделить. Эффективность кэша это такая относительная вещь... Сильно зависит от типа выполняемых задач, если вам нужно разово собрать статистику по всей базе, то она не особо вам поможет. Когда-то(еще на 32х битном сервере) занимался этим вопросом, у нас была эффективность кэша примерно 300-500. Так вот, эффективность кэша нагоняли плохо оптимизированные программы, которые многократно читали одни и те же таблицы не используя индексы, причем количество вызовов было просто каким-то безумным На таких глобалах эффективность кэша(количество логических чтений/число физических чтений) измерялась в тысячах, после переработки число чтений немного уменьшилось и псевдо-"эффективность" стала ниже. Так что эффективность кэша в числах около 2000 свидетельствует либо о плохих алгоритмах, либо о том, что все рабочие данные приложения постоянно находятся в воздухе, но в общем случае я бы не стал за этим гнаться. Лучше смотреть тот же PERFMON и искать узкие места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 16:24 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Так что эффективность кэша в числах около 2000 свидетельствует либо о плохих алгоритмахОна также (и прежде всего :) может говорить о том, что почти все данные читаются из кэша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 16:38 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
servit А.В. , Какова ситуация с автоматически выделяемой памятью вместо ручного выделения? Разницу заметить сложно, потому что ооочень долго. servitКакова у Вас сейчас Эффективность кэша / Cache Efficiency ? Импорт данных из CSV файлов, затем сканирование глобали (в процессе - тот цикл, что я писал), в данный момент значение 220. servitPS: у меня на XP c 2Гб физической памяти глобал с 10млн. узлов обходится за 3.6 сек. и создаётся <1мин. PPS: Determine Number of Global Buffers У меня на Win7 все тоже быстро. Но на XP клиента все очень медленно - по крайней мере в 30 раз медленнее при сопоставимом железе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2011, 20:41 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
А.В.Разницу заметить сложно, потому что ооочень долго.Другими словами разницы нет. Причина может быть: в железе; в настройках ОС или сопутствующих программах, например включённом антивирусе, другой СУБД; в настройках СУБД. Для начала попробуйте на другой физической или виртуальной машине с XP повторить эксперимент с настройками ОС/СУБД по-умолчанию. PS: существует ещё одна возможная причина проблемы: Цитата из документацииWhen you defer login you must call the license login method immediately. A process that has not performed a license login pauses after every 1000 lines of Caché ObjectScript code. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2011, 09:34 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
servitЦитата из документацииWhen you defer login you must call the license login method immediately. A process that has not performed a license login pauses after every 1000 lines of Caché ObjectScript code. Фразу такую помню, только сейчас че-то не соображу, в каких случаях это происходит? Когда стоит минимальная безопасность, то происходит автовход под UnknownUser, если стоит требовнаие авторизации, то просто сам терминал не запустится. Или это такая защита от "хитрых", которые на системах, требующих авторизации пытаются всю работу построить в странице авторизации (которая не потребляет лицензии)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2011, 09:48 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2011, 09:58 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
servitПричина может быть: в железе; Может быть, но копирование файла cache.dat занимает полторы минуты, а проход по первому уровню глобали (глобаль занимает практически весь объем базы данных) идет 40 минут - мягко говоря - странно. servitв настройках ОС или сопутствующих программах, например включённом антивирусе, другой СУБД; Грешил на антивирус, но добавил все папки каше в исключения оного - не помогло. Никаких процессов занимающих много памяти или использующих процессор хотя бы на 1% на исследуемой системе не было. servitв настройках СУБД. Настройки аналогичные похожей системе на Win7, где все летает. Настройки памяти для баз данных изменялись в широких пределах (включая дефолтные) - разницы замечено не было. servitДля начала попробуйте на другой физической или виртуальной машине с XP повторить эксперимент с настройками ОС/СУБД по-умолчанию. Пришел к такому же выводу. Буду пробовать. servitPS: существует ещё одна возможная причина проблемы: Цитата из документацииWhen you defer login you must call the license login method immediately. A process that has not performed a license login pauses after every 1000 lines of Caché ObjectScript code. По скорости работы очень похоже именно на подобное поведение. Но клиент-сервер - один компьютер, делаю запуск через терминал, терминал настроен для запуска только по паролю. Одинаковые проблемы при входе через zen-приложение и аутентификации в нем. Но посмотрю в этом направлении повнимательнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2011, 10:47 |
|
||
|
Производительность Cache (Ensemble) на различных ОС
|
|||
|---|---|---|---|
|
#18+
У вас там случайно не пробная версия? Еще попробуйте системный мониторинг, посмотрите размер очереди жесткого диска, и задержку при чтении, количество операций в секунду. При копировании файла используются редкие чтения/записи большими блоками(до 64к вроде), каше работает 8Кб операциями, гораздо важнее задержка чтения. Вообще каше большую скорость дисковых операций не на SSD дисках не развивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2011, 10:56 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37131750&tid=1557803]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
128ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 473ms |

| 0 / 0 |
