Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 3 вперед Ctrl→ все |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Имеется рабочая база (бухгалтерия, логистика, производство никаких космических сверхзадач) на 150 одновременных пользователей на базе Navision 3.7. Microsoft SQL Server 2000 - 8.00.2066 (Intel X86) May 11 2012 18:41:14 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) Windows Server 2003 R2 Enterprise x64 Edition SP2 Процессор Xeon L5630 (16 физических ядер по 2.1 ГГц) Память 64 Гб. Из нее отдано под SQL Server : Memory Manager Total Server Memory (KB) 63.577.091. Для ОС доступно из диспетчера задач как минимум 1 Гб. Жестких дисков SAS 15K более 25-ти в RAID10. Год назад рабочая база мигрировала на этот сервер с практически аналогичного сервера, только с 32-мя Гб памяти. После этого периодически в хаотичном порядке стала появляться у пользователей ошибка 1204,"HY000",[Microsoft][ODBC SQL Server Driver][SQL Server]The SQL Server cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users or ask the system administrator to check the SQL Server lock and memory configuration. Ранее эта ошибка не появлялась. Изучение материалов по этой ошибке в свободном доступе не дало никакого рецепта с положительными откликами кроме увеличения оперативной памяти. Различные операции по по изменению пулла блокировок, реиндексации, пляски с бубном и т.п. также не дают эффекта. Нам необходимо решить эту проблему. Для ее решения мы готовы провести совместные (по необходимости) замеры, анализы, сбор информации. Если у Вас есть реальный опыт и план по решению таких проблем - готовы к взаимовыгодному сотрудничеству. Перейти на более новую версию Navision нет финансовой возможности, а эта версия работает только на MS SQL Server 2000 и Windows 2003. 64 Гб RAM потолок. Если мы можем опубликовать какую-то необходимую информацию пишите выложим. Если необходима почта - в профиле. |
10 фев 16, 17:38 [18800665] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
Что вернетexec sp_configure 'locks'? |
10 фев 16, 18:01 [18800832] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11568 |
https://support.microsoft.com/ru-ru/kb/274750 |
10 фев 16, 18:03 [18800847] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
locks min 5000 max 2147483647 config_value 5000000 run_value 5000000 |
10 фев 16, 18:06 [18800869] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Что касается настройки памяти, AWE и т.п. на наш взгляд все корректно. Если что-то нужно конкретно озвучить - пишите - озвучим! |
||
10 фев 16, 18:08 [18800878] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
exec sp_configure 'min server memory' exec sp_configure 'max server memory' min server memory (MB) min 0 max 2147483647 config 40000 run 40000 max server memory (MB) min 4 max 2147483647 config 62000 run 62000 |
10 фев 16, 18:10 [18800898] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
сами ограничили, сами огребли. даже наши экспериментаторы до такого не дошли, а уж все опции потрогали и переделали... |
||
10 фев 16, 18:11 [18800901] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Да этот вариант родился в попытках сделать невозможное при отсутствии влияние логичных вариантов на ошибку 1204. Что предлагаете для нашей ситуации? И что еще можно посмотреть? Если мы уже это пробовали - так и напишем. |
||||
10 фев 16, 18:23 [18800957] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
нет, ну если ошибка была и *до этого*, то не знаю. но если ограничить, то по достижении заветного числа логично вместо запрашиваемого лока получить Rerun your statement when there are fewer active users |
10 фев 16, 18:26 [18800968] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Да, ошибка была и до этого. Поэтому крутили динамический и статический пулл на разных значениях. Ничего не помогает. Может на день затихнуть и потом опять начаться. Логики не наблюдаем. Хотя возможно она есть и это не просто баг. |
10 фев 16, 18:30 [18800982] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
а может, у вас кто-нибудь запретил lock escalation? есть флаги 1211 – Disables Lock Escalation completely – allows to use 60% of the allocated memory – if 60% of memory is used and more locking is needed you will get an out-of-memory error. 1224 – Disables Lock Escalation until the memory threshold of 40% allocated memory is reached – after that Lock Escalation is enabled. есть табличная опция, вот тут все расписано: Disable Lock Escalation in SQL Server |
10 фев 16, 18:32 [18800992] Ответить | Цитировать Сообщить модератору |
Crimean Member Откуда: Сообщений: 13147 |
памяти у вас _доступной_ мало. убегать надо от 2000. да, знаю, "ваш кэп" :( а оно точно только под 2000 запускается? |
10 фев 16, 18:34 [18801003] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
А откуда выбор именно этой версии? Обычно ставят последний сервис-пак - это 8.0.2039, либо последний сервис-пак с последним куммулятивным апдейтом - это 8.00.2305, а у вас какая то промежуточная версия. |
||
10 фев 16, 18:46 [18801075] Ответить | Цитировать Сообщить модератору |
МуМу Member Откуда: Сообщений: 1134 |
Опыт, есть. Пишите на личку - может и поможем. Бесплатный совет - посмотрел бы на счетчики работы с памятью, также объем незакрытых транзакций. Разумеется отключение эскалации посмотрел и т.п. |
10 фев 16, 20:46 [18801543] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Перепроверил. Правой клавишей по серверу в EM в Startup Parameters пусто, в Администрирование / Службы / Параметры запуска пусто. |
||
11 фев 16, 08:17 [18802384] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
К прискорбию только 2000-ый. А чтобы было еще прискорбней при попытке тестового перевода нашей учетной системы на Windows 2008, SQL 2005, NAV4.0 - наблюдаем общее падение производительности в полтора-два раза (после раскочегаривания БД и т.п. ес-сно). |
||
11 фев 16, 08:20 [18802390] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Спасибо за информацию. Сейчас посмотрим. |
||||
11 фев 16, 08:20 [18802391] Ответить | Цитировать Сообщить модератору |
Kaktus_ Member Откуда: Ростов-на-Дону Сообщений: 315 |
Спасибо, контакты в личке увидел! |
||
11 фев 16, 08:23 [18802393] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Не хочу вас расстраивать, уважаемый, но я плюсую к Crimean. Боюсь, ваше x86 не спасет даже МуМу. Читаю книгу Delaney вообще независимо от этой темы, и ровно сегодня мне попалась вот такая фраза
Это наводит на мысль, что локи он не может хранить в awe memory, и не станет под них отводить более 24% обычной памяти. Вы этот лимит исчерпали, даже со всей возможной эскалацией. Сугубое IMHO. Книга: SQL ServerConcurrency Locking, Blocking and Row Versioning By Kalen Delaney |
||
11 фев 16, 09:49 [18802652] Ответить | Цитировать Сообщить модератору |
МуМу Member Откуда: Сообщений: 1134 |
Есть у нас подходы как запустить приложение с закрытым кодом вместо 2000 к примеру на 2012-ом MSSQL. Но в вашем случае думаю все гораздо проще, можно отделаться простым аудитом и немного оптимизировать процессы которые генерируют большое количество блокировок и т.п. |
11 фев 16, 10:23 [18802821] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Да несомненно. Все просто, а сервер и не догадался сэскалировать, когда "нагенерировал большое количество блокировок". Они ему опцию серверную поменяли, чтоб раньше эскалировал, но все равно нету памяти под все их локи. Ладно, вы только не забудьте ут похвастаться успехами, нам всем в нынешней жизни так не хватает чуда. |
11 фев 16, 10:33 [18802858] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
кстати, ТС, если вы тут нечасто бываете, вас необходимо предупредить: у МуМу понятие "эскалация" не совпадает с тем, что в этот термин вкладывает MS. вот тут хотя бы Mind сделал перевод его термина: 18130294 а вот тут 18284014 мне так и не удалось найти хоть какую-то эскалацию вообще ![]() |
11 фев 16, 10:45 [18802930] Ответить | Цитировать Сообщить модератору |
МуМу Member Откуда: Сообщений: 1134 |
Ну насчет термина "эскалация" я свою позицию ранее пояснил. Сугубо философский вопрос:) В данном контексте в "эскалацию" я вкладываю смысл в классическом понимании от MSSQL. Есть более сложный подход с возможностью подмены запросов на лету и т.п.(так например 1С 7.7. переводится на 2012) Но мне кажется в данном случае анализ функционала небольшой провести, может в каком регламенте транзакцию можно закрывать порциями сразу а она не закрывается(типа перепроведения документов, бухгалтера это любят) , может еще чего. С учетом того что система раньше работала а сейчас периодически возникают такие ошибки - уверен выход есть! |
11 фев 16, 10:56 [18802998] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
вообще-то принцип достижения любого лимита таков: сначала работает, а потом бац и упрешься. потребностей больше, а ресурсы все те же. или вы считаете, что объем данных не растет? универсальное решение конечно есть: не храните, граждане, архивное добро. удаляйте/складируйте неактуальное в другом месте. поддерживайте объем инфо в прежних размерах и все будет как раньше |
||
11 фев 16, 11:05 [18803053] Ответить | Цитировать Сообщить модератору |
МуМу Member Откуда: Сообщений: 1134 |
Разумеется причиной могли стать функциональные изменения, увеличившийся объем БД, увеличивающиеся инф. потоки. Но как правило все тривиальней. Что бы столько памяти отъесть под обслуживание блокировок это нужно постараться. Нет, конечно иногда приходится спорить что к примеру 30 млн изменений в одной атомарной транзакции - ну никак нельзя разнести так как не позволяет бизнес логика.(потом всегда оказывается что можно) В любом случае будет обращение - будет и пища для размышлений. |
11 фев 16, 11:17 [18803139] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 3 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |