После обновления локальный сервер AzureDevops Server 2019 сохраняет 10-кратные данные сборки в dbo.tbl_content. - PullRequest
1 голос
/ 28 мая 2020

мои локальные, Azure резервные копии DevOps 2019 показывают неустойчивое увеличение размера файла .mdf

  • query1 показывает, что это таблица «dbo.tbl_content»
  • query2 показывает, что это «FileContainer» размером 112 ГБ.
  • query3 показывает, что это pipelines: // b на 93 ГБ.
  • query4 показывает, что используемый размер увеличился с 1 ГБ в месяц до 10 ГБ в месяц. Это произошло в январе 2020 года, когда, возможно, случайно мы перешли с TFS18 на AzureDevOps19.

Итак, я считаю, что ищу сборочную трубу (а не выпускную трубу), которую нужно очистить? Исторически сложилось так, что мы пытались сохранить старые журналы сборки на 366 дней, но по нашим темпам мы этого не сделаем.

у нас около 40 конвейеров сборки (некоторые исторические c, которые больше не работают), в c 4 запускаются при фиксации (CI).

re: retention policy. ..

  • типичная политика хранения сборки CI. Срок хранения: 10 мин. Срок хранения: 1
  • типичная политика хранения сборок R C. Дней хранения: 180 Мин. Хранения: 50
  • от: DefaultCollection / Base / _settings / buildqueue ... Максимальная политика хранения / Дней хранения: 183 Мин. Хранения: 55 Политика хранения по умолчанию / Дней хранения: 15 минут для хранения: 1 Окончательно уничтожить сборки / Дней для сохранения записи сборки после удаления: 366 <- Я уменьшил это вчера с 7000 </em>

Любая помощь приветствуется здесь, но особенно :

  • Как я могу отследить конкретную сборку c, которая вызывает проблему? и как я могу это исправить?
  • Есть какой-нибудь инструмент, который покажет мне, где проблемы l ie. например, в TFS раньше был инструмент аудита работоспособности, но я его не вижу?

Спасибо,

query1
    SELECT TOP 10 o.name,
    SUM(reserved_page_count) * 8.0 / 1024 SizeInMB,
    SUM(CASE
    WHEN p.index_id <= 1 THEN p.row_count
    ELSE 0
    END) Row_Count
    FROM sys.dm_db_partition_stats p
    JOIN sys.objects o
    ON p.object_id = o.object_id
    GROUP BY o.name
    ORDER BY SUM(reserved_page_count) DESC

query2
    SELECT Owner =
    CASE
    WHEN OwnerId = 0 THEN 'Generic'
    WHEN OwnerId = 1 THEN 'VersionControl'
    WHEN OwnerId = 2 THEN 'WorkItemTracking'
    WHEN OwnerId = 3 THEN 'TeamBuild'
    WHEN OwnerId = 4 THEN 'TeamTest'
    WHEN OwnerId = 5 THEN 'Servicing'
    WHEN OwnerId = 6 THEN 'UnitTest'
    WHEN OwnerId = 7 THEN 'WebAccess'
    WHEN OwnerId = 8 THEN 'ProcessTemplate'
    WHEN OwnerId = 9 THEN 'StrongBox'
    WHEN OwnerId = 10 THEN 'FileContainer'
    WHEN OwnerId = 11 THEN 'CodeSense'
    WHEN OwnerId = 12 THEN 'Profile'
    WHEN OwnerId = 13 THEN 'Aad'
    WHEN OwnerId = 14 THEN 'Gallery'
    WHEN OwnerId = 15 THEN 'BlobStore'
    WHEN OwnerId = 255 THEN 'PendingDeletion'
    END,
    SUM(CompressedLength) / 1024.0 / 1024.0 AS BlobSizeInMB
    FROM tbl_FileReference AS r
    JOIN tbl_FileMetadata AS m
    ON r.ResourceId = m.ResourceId
    AND r.PartitionId = m.PartitionId
    WHERE r.PartitionId = 1
    GROUP BY OwnerId
    ORDER BY 2 DESC 

query3
    SELECT CASE
    WHEN Container = 'vstfs:///Buil' THEN 'Build'
    WHEN Container = 'vstfs:///Git/' THEN 'Git'
    WHEN Container = 'vstfs:///Dist' THEN 'DistributedTask'
    WHEN Container = 'vstfs:///Rele' THEN 'Release'
    ELSE Container
    END AS FileContainerOwner,
    SUM(fm.CompressedLength) / 1024 / 1024 AS TotalSizeInMB
    FROM (SELECT DISTINCT LEFT(c.ArtifactUri, 13) AS Container,
    fr.ResourceId,
    ci.PartitionId
    FROM tbl_Container c with (nolock)
    INNER JOIN tbl_ContainerItem ci
    ON c.ContainerId = ci.ContainerId
    AND c.PartitionId = ci.PartitionId
    INNER JOIN tbl_FileReference fr
    ON ci.fileId = fr.fileId
    AND ci.DataspaceId = fr.DataspaceId
    AND ci.PartitionId = fr.PartitionId) c
    INNER JOIN tbl_FileMetadata fm
    ON fm.ResourceId = c.ResourceId
    AND fm.PartitionId = c.PartitionId
    GROUP BY c.Container
    ORDER BY TotalSizeInMB DESC

query4
    Select DATEPART(yyyy, CreationDate) as [year],
    DATEPART(mm, CreationDate) as [month],
    SUM(DATALENGTH(Content)) / 1048576 as [Size in Mb]
    From tbl_Content With (nolock)
    Group by DATEPART(yyyy, CreationDate),
    DATEPART(mm, CreationDate)
    Order by DATEPART(yyyy, CreationDate),
    DATEPART(mm, CreationDate)

Связанный вопрос: TFS2015 tbl_Content увеличение

1 Ответ

1 голос
/ 29 мая 2020

Вы можете попытаться выполнить запрос ниже, чтобы сузить дату:

SELECT ci.ContainerId,
c.ArtifactUri,
c.Name,
c.DateCreated,
SUM(fm.FileLength)
FROM tbl_ContainerItem ci
JOIN tbl_FileReference f
ON f.FileId = ci.FileId
JOIN tbl_FileMetadata fm
ON fm.PartitionId = 1
AND fm.ResourceId = f.ResourceId 
LEFT JOIN tbl_Container c 
ON c.ContainerId = ci.ContainerId 
AND c.PartitionId = 1 
WHERE f.PartitionId = 1 
AND ci.PartitionId = 1 
GROUP BY ci.ContainerId, c.ArtifactUri, c.Name, c.DateCreated

И поскольку это связано со сборкой, пожалуйста, проверьте, не вызвал ли это отчет о тестировании. Вы можете сослаться на подробные действия в этом потоке: База данных TFS становится слишком большой

Кроме того, вы также можете попробовать сжать журнал транзакций в TFS / Azure DevOps Database.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...