1

We have TFS 2017.3 with separate Code Search server.

We have huge TFS DB (about 1.6TB), in the code search server we have 700GB dis space.

After few weeks the disk space running out and the code search not work in the tfs.

After we increase the disk space the search back to work. How can we make retention policy to delete old code search data (index)? we don't want to increased more the disk space.

4

2 回答 2

0

搜索索引(代码和工作项)分两个阶段工作:

  • 批量索引 (BI),其中对 Collection 下所有项目/存储库中的整个代码和工作项工件进行索引。这是一个
    耗时的操作,并且取决于
    集合下工件的大小。
  • 连续索引 (CI),它处理对工件的所有增量更新(添加/更新/删除)并为它们编制索引。这是基于通知的模型,其中索引器侦听 TFS 事件并根据这些事件通知进行操作。CI 处理几乎所有的更新操作,包括 Project/Repository/Collection 层的 CRUD 操作(例如 Repository 重命名、Project 添加/删除等)。这些 CI 的操作时间将再次取决于增量更新的大小。BI 总是在 CI 之前,即 CI 永远不会在项目/存储库上执行,直到 BI 完成。

如何清理索引数据和重新索引请按照以下步骤操作:

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 中的此博客:Resetting Search Index in Team Foundation Server

于 2018-05-31T06:19:31.833 回答
0

在删除 ES 文件夹、重新安​​装代码搜索扩展程序后,我能够减小磁盘大小,有时不得不运行MissingIndexFolderTriggerCollectionIndexing.ps1.

但是- 我得出的结论是不值得这样做,磁盘大小正在迅速增长并达到原始大小,所以我没有保存任何东西。

虽然微软建议给 DB 的 35% 的磁盘空间,但这对我们来说是不够的,我们会在磁盘满时增加大小到最后(目前大约是 DB 大小的 45%)。

结论 - 不要触摸 ES,如果磁盘已满,则增加磁盘大小。

于 2018-09-12T10:02:11.727 回答