Политика хранения на сервере поиска кода TFS (Elastic Search) - PullRequest
0 голосов
/ 30 мая 2018

У нас есть TFS 2017.3 с отдельным сервером поиска кода.

У нас огромная БД TFS (около 1,6 ТБ), на сервере поиска кода у нас 700 ГБ дискового пространства.

Через несколько недель дисковое пространство заканчивается, и поиск кода не работает вtfs.

После увеличения дискового пространства поиск возвращается к работе.Как мы можем сделать политику хранения, чтобы удалить старые данные поиска кода (индекс)?мы не хотим увеличивать дисковое пространство.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Мне удалось уменьшить размер диска после удаления папок ES, переустановки расширения поиска кода, и иногда приходилось запускать MissingIndexFolderTriggerCollectionIndexing.ps1.

Но - я пришел кВывод о том, что делать это не стоило, размер диска быстро увеличивался и достигал исходного размера, поэтому я ничего не сохранил.

Хотя Microsoft рекомендует предоставлять дисковое пространство 35% БД, это не такнам достаточно, и мы увеличиваем размер, когда диск заполнен до конца (в настоящее время около 45% размера БД).

Вывод - не трогайте ES, если диск заполняетсязатем увеличьте размер диска.

0 голосов
/ 31 мая 2018

Индексирование поиска ( Код и рабочий элемент ) работает в 2 этапа:

  • Массовое индексирование (BI), где весь код и артефакты рабочего элемента присутствуют во всех проектах./ Репозитории в Коллекции индексируются.Это
    длительная операция, которая зависит от размера артефактов
    в коллекции.
  • Непрерывное индексирование (CI), которое обрабатывает все инкрементные обновления артефактов (добавление / обновление / удаление).и индексирует их.Это модель на основе уведомлений, где индексатор прослушивает события TFS и работает на основе этих уведомлений о событиях.CI выполняет почти все операции обновления, включая операции CRUD на уровне Project / Repository / Collection (такие как переименование репозитория, добавление / удаление проекта и т. Д.).Время работы этих CI снова будет зависеть от размера инкрементного обновления.BI всегда предшествует CI, то есть CI никогда не будет выполняться в проекте / хранилище, пока BI не будет завершено для того же.

Как очистить данные индекса и переиндексировать, пожалуйста, следуйте нижеприведенным шагам:

  • Приостановить индексирование для всех коллекций.Запустите следующий сценарий в базе данных конфигурации TFS https://github.com/Microsoft/Code-Search/blob/master/PauseIndexing.ps1
  • Войдите в систему на компьютере, на котором работает Elasticsearch (ES)
  • Остановите службу ES
  • Удалите весь поисковый индекспапка (что-то вроде C: \ TfsData \ Search \ IndexStore или где бы вы ни настроили ее)
  • Перезапустите службы агента заданий TFS на машинах AT
  • Удалитеследующие таблицы из каждой базы данных коллекции

DELETE FROM [Search].[tbl_IndexingUnit]
DELETE FROM [Search].[tbl_IndexingUnitChangeEvent]
DELETE FROM [Search].[tbl_IndexingUnitChangeEventArchive]
DELETE FROM [Search].[tbl_JobYield]
DELETE FROM [Search].[tbl_TreeStore]
DELETE FROM [Search].[tbl_DisabledFiles]
DELETE FROM [Search].[tbl_ResourceLockTable]

Более подробную информацию см. в этом блоге в MSDN: Сброс индекса поиска в Team Foundation Server

...