powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Reporting Services и выделение CPU
7 сообщений из 7, страница 1 из 1
Reporting Services и выделение CPU
    #39869369
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Возник вопрос по использованию Reporting Services процессоров на хосте.

По серверу пришёл алерт по очередям к процессорам. При проверке обнаружил, что нагружена только четверть логических процессоров (Node 0). Грузит процесс reportingservicesservice от репортинга.

У сервера отчётов настроить использование оперативной памяти возможно. А вот по процам подобного не вижу, он автоматом может только 1 Node использовать получается?
(В MS SQL у сервера включено использование всех процов и при нагрузке к пользовательским базам равномерно грузит).
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39869397
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

а сколько отчетов он рендерил в тот момент?
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39870139
Slava_Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а случайно версия лицензирования какова? Возможно ограничения сиквела есть. по самому SQL Server такое возможно и для избежания нужно ставить Core Licence. По репортингу не уверен.
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39870168
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По реально запущенным отчётам затрудняюсь ответить. Из активных запросов по базам репортинга было два: с CREATE PROCEDURE [dbo].[WriteLockSession] и с началом (@SnapshotId uniqueidentifier,@IsPermanent bit,@ChunkName nvarchar(36),@ChunkType int,@ChunkId uniqueidentifier output,@ChunkFlags tinyint output,@MimeType nvarchar(260) output). По ним находил информацию, что у кого были проблемы с блокировками, но у меня они отрабатывают без дедлоков и блокировок.

Версия MS SQL 2016 SP2 CU6 Enterprise: Core-based Licensing (64-bit). CU не последний, но с ним раньше таких проблем не было. Плюс как уже писал - это поведение именно reportingservicesservice. Служба самого SQL сервера может использовать все процы.

Планируется обновить до 2017 с последними обновлениями, может поможет, если баг. Как вариант - вынести службу репортинга на отдельный хост. Но заинтересовало само происходящее, что-то в интернете даже похожего не вижу.
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39870184
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

рендер, по-моему, в одно ядро работает. Т.е. один отчет нагрузит одно ядро.
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39879689
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если отойти от нагрузки только на часть процов, то вызывает вопрос ещё и причина:
во время такого повышения в выполняемых скриптах в SQL стабильно вижу два, причем "технических"
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
(@SnapshotId uniqueidentifier,@IsPermanent bit,@ChunkName nvarchar(36),@ChunkType int,@ChunkId uniqueidentifier output,@ChunkFlags tinyint output,@MimeType nvarchar(260) output)
if (@IsPermanent = 1) begin		
	select	@ChunkId = ChunkId,
			@ChunkFlags = ChunkFlags,
            @MimeType = MimeType
	from dbo.SegmentedChunk chunk
	where chunk.SnapshotDataId = @SnapshotId and chunk.ChunkName = @ChunkName and chunk.ChunkType = @ChunkType
	
	select	csm.SegmentId, 				
			csm.LogicalByteCount as LogicalSegmentLength, 
			csm.ActualByteCount as ActualSegmentLength		
	from ChunkSegmentMapping csm		
	where csm.ChunkId = @ChunkId
	order by csm.StartByte asc
end
else begin
	select	@ChunkId = ChunkId,
			@ChunkFlags = ChunkFlags,
            @MimeType = MimeType
	from [ReportServerTempDB].dbo.SegmentedChunk chunk
	where chunk.SnapshotDataId = @SnapshotId and chunk.ChunkName = @ChunkName and chunk.ChunkType = @ChunkType
	
	if @ChunkFlags & 0x4 > 0 begin
		-- Shallow copy: read chunk segments from catalog 
		select	csm.SegmentId, 				
				csm.LogicalByteCount as LogicalSegmentLength, 
				csm.ActualByteCount as ActualSegmentLength		
		from ChunkSegmentMapping csm		
		where csm.ChunkId = @ChunkId
		order by csm.StartByte asc
	end
	else begin
		-- Regular copy: read chunk segments from temp db
		select	csm.SegmentId, 				
				csm.LogicalByteCount as LogicalSegmentLength, 
				csm.ActualByteCount as ActualSegmentLength		
		from [ReportServerTempDB].dbo.ChunkSegmentMapping csm		
		where csm.ChunkId = @ChunkId
		order by csm.StartByte asc
	end
end



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
CREATE PROCEDURE [dbo].[WriteLockSession]
@SessionID as varchar(32),
@Persisted bit,
@CheckLockVersion bit = 0,
@LockVersion int
AS
SET NOCOUNT OFF ;
IF @Persisted = 1
BEGIN
	IF @CheckLockVersion = 0
	BEGIN
		UPDATE [ReportServerTempDB].dbo.SessionLock WITH (ROWLOCK)
		SET SessionID = SessionID
		WHERE SessionID = @SessionID;
	END
	ELSE
	BEGIN
		DECLARE @ActualLockVersion as int

		UPDATE [ReportServerTempDB].dbo.SessionLock WITH (ROWLOCK)
		SET SessionID = SessionID,
		LockVersion = LockVersion + 1
		WHERE SessionID = @SessionID
		AND LockVersion = @LockVersion ;

		IF (@@ROWCOUNT = 0)
		BEGIN
			SELECT @ActualLockVersion = LockVersion
			FROM [ReportServerTempDB].dbo.SessionLock WITH (ROWLOCK)
			WHERE SessionID = @SessionID;

			IF (@ActualLockVersion <> @LockVersion)
				RAISERROR ('Invalid version locked', 16,1)
			END
		END
	END
ELSE
BEGIN
	INSERT INTO [ReportServerTempDB].dbo.SessionLock WITH (ROWLOCK) (SessionID) VALUES (@SessionID)
END





Бывает, что и каждые 4-5 минут выполняются, а коллеги утверждают, что отчёты используются максимум раз в полчаса.
...
Рейтинг: 0 / 0
Reporting Services и выделение CPU
    #39879834
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danion,

это сервисные джобы работают.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Reporting Services и выделение CPU
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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