Всем доброго дня!
Есть проблема: добавили память на сервер SQL, теперь периодическая загрузка ЦП 99-100%. Раньше памяти не было и проблемы не было. Как выяснить с чем связана проблема?

Нравится

9 комментариев

Здравствуйте!

Необходимо анализировать. Для начала стоит обратить внимание на процессы, которые больше всего занимают ресурс ЦП.

"Резвов Роман" написал:обратить внимание на процессы

Добрый день, Роман! Один процесс занимает ресурс: sqlservr :-)

Не редки случаи, когда 100% загрузка ЦП SQL сервером происходит при блокировках. Ранее у вас узкое место было в системе ввода-вывода, а теперь в обработке самих данных. Внимательно смотрите какие части БД на каких дисках располагаются, например, TEMPDB, по умолчанию находится на диске С, а в этой базе происходят сортировки и создания временных таблиц. Эту базу лучше класть на RAID, а еще лучше на SSD. Так же, не маловажным моментом является сбор статистики и дефрагментация индексов, это нужно делать каждый день.

"Евгений Либин" написал:

какие части БД на каких дисках располагаются, например, TEMPDB

Евгений, добрый день!

Блокировки действительно частое явление, пока не думал что с ними делать.

Я правильно понимаю: что при добавлении оперативной памяти кардинально меняется "узкое место"?
TEMPDB как и лог базы црм реально лежат на c:\ а не на ssd как сама база! Надо всё вместе с логами на ssd закинуть?

Да, обязательно. Это одно из узких мест БД

Но будьте аккуратными, SSD имеет ограниченный ресурс, и если будет утеряна TEMPDB, то вы ничего не потеряете, а вот с файлами данных могут быть проблемы. Лучше саму базу на 10 RAID, а темповую базу на SSD.

А какой то монитор по процессу sqlservr существует, типа профайлера, но чтоб все действия сервера видны были? Чтобы наверняка определить в чем причина периодических (каждые 3-5 мин) уходов процессора в 100%

Есть монитор активности, там видно какие сессии что делают, есть активность по запросам, а вообще это работа для DBA, т.е. настройка и тюнинг БД.

Начните с простого,в 60% это помогает
1. tempdb на ссд
2 ежедневный ребилд индексов и сбор статистики.

Дальше нужно смотреть, может индексов не достаточно, может наоборот, слишком много.

"Евгений Либин" написал:Есть монитор активности, там видно какие сессии

Евгений, спасибо! Именно благодаря этой замечательной функции (подсказал доблестный админ) в mssms и нашел косячную процедуру, которая в джобе часто запускалась. А еще понял (так же благодаря админу), что параллелизм зло, поэтому
Max Degree of Parallelism = 4 (а лучше вооюще 2 поставить)!!!

Показать все комментарии

Коллеги,

Есть бинарники TS версии 3.3.2.249
Есть OS Windosw 7 корпоративная.

Никто не сталкивался с такой проблемой: на диаграмме перепривязываешь блоки между собой (перетаскиваешь стрелочки) - комп уходит в аут, использование памяти процессом TSAdmin увеличивается до тех пор, пока не получаем OutOfMemory Exception (один раз я этого дождался, на второй терпения не хватило, пришлось перезагружать комп)?

Какие-нибудь мысли, рекомендации?
Спасибо!

Нравится

3 комментария

Попробовали с той же операционной системой и бинарными файлами - проблему воспроизвести не удалось.

Проблема воспроизводится при каждом перетаскивании стрелочек или после определенного времени работы в системе?

Какого типа элементы Вы пытаетесь соединить?

Есть ли у Вас возможность предоставить сервис бизнес-процесса, на котором воспроизводится проблема?

Для устранения проблемы рекомендуется обновить бинарные файлы до самой новой сборки в пределах Вашей версии. Запрос на бинарные файлы мжно направить на support@terrasoft.ru

Анна, добрый день!

1) Проблема воспроизводится всегда для одного участка диаграмы (см. приложение)
Попробуйте элемент №4 соединить с выходом.
Сейчас картина немного другая: Exception + ОС автоматически закрывает приложение (т.е. сейчас хотя бы комп не виснет)

2) Это элемент типа "Окно"

3) Не уверен по поводу номеров сборки... с нами работают Ваши сотрудники (завершают проект), они что-то не говорили что есть что-то более новое чем 3.3.2.249

Спасибо!

Проблема только на одном компьютере или на всех?

Есть два варианта:
- Это системный вопрос, и стоит попробовать перерегистрацию/замену бинарных файлов, настройку некоторых функций операционной системы (если воспроизвоидтся только на одном компьютере);

- Поскольку у Вас были серьезные проектные доработки, мог быть доработан отдельный компонент БП, который Вы пытаетесь соединить, либо же справочник типов для данного компонента, и необходимо исследовать конфигурацию.

Показать все комментарии

Здравствуйте Коллеги!

Реализовал динамическое создание контролов (Edit, LookupControl, DateTimeControl) на карточке редактирования,в зависимости от исходного набора данных.В том же цикле когда они создаются им присваивается обработка событий. При закрытии карточки (OnClose) созданные контролы в цикле уничтожаются и от событий отписываюсь функцией Unsubscribe.

Проблема в том что чем чаще открываешь и закрываешь эту карточку редактирования, тем дольше она начинает "грузиться", т.е. все дольше и дольше происходит создание карточки.
в первый раз карточка открывается за секунду, на пятидесятый раз, карточка открывается уже секунд 10. И даже если переходить в другие разделы террасофт работает существенно медленней. Перезагрузка террасофта помогает, но это не выход.

и еще, если смотреть диспетчер задач то загрузка памяти процессом TSCRM.exe с каждым открытием динамической карточки увеличивается на 50-100кб

как решить эту проблему?

Нравится

3 комментария

Unsubscribe не решит проблему. Для загрузки элементов используйте GetNewItem. Также убедитесь, чтобы на это окно не было ссылок, потому что в таком случае память очищатся не будет.

"Гакало Игорь Александрович" написал:

Можете привести пример с GetNewItem?
какие ссылки вы имеете ввиду?

Пример с GetNewItem:

function GetUpdateQuery() {
	if (!Assigned(AccountAddress.UpdateQuery)) {
		var UpdateQuery = Services.<strong><em>GetNewItemByUSI</em></strong>('uq_AccountAddress');
		UpdateQuery.ColumnsValues.ItemsByName('IsPrimary').Value = false;
		AccountAddress.UpdateQuery = UpdateQuery;
	}
	return AccountAddress.UpdateQuery;
}

Пример ссылки:

ComponentsByName('btnOK')
Показать все комментарии