Подтвердить что ты не робот

Большой TFSUser\AppData\Local\Temp Directory на машине сборки

Я использую TFS 2012 Update 1 на Windows Server 2008 R2. У нас есть сборка TFS, работающая под учетной записью TFSUser. На днях мы вышли из космоса на нашей машине. После расследования я обнаружил, что папка C:\Users\TFSUser\AppData\Local\Temp содержит более 50 ГБ файлов, некоторые из которых относятся к октябрю 2012 года. Ни один из файлов не слишком большой, но они не когда-либо, кажется, очищаются.

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

Обновление 2013-03-13
Я создал небольшую powershell script, которая выполняется каждую ночь, чтобы удалить содержимое каталога temp. Здесь powershell script:

Stop-Service TFSBuildServiceHost.2012
Remove-Item Drive:\Path\To\TFSUser\AppData\Local\Temp\* -recurse -exclude Build*
Start-Service TFSBuildServiceHost.2012

У меня есть задача, выполняемая с повышенными привилегиями в ночное время как учетная запись TFSUser. Повышенные привилегии необходимы, потому что нам нужно начинать и останавливать службы.

4b9b3361

Ответ 1

Это вопрос TFS2010, который, я думаю, они еще не обсуждали в 2012 году. Система сборки создает временные файлы и никогда не очищает их, что приводит к сбоям, поскольку диск заполнен или потому, что они используют ограниченное количество цифр для уникальных идентификаторов и заканчивают новые идентификаторы, которые могут быть использованы (IIRC, он падает на 65536 файлах, которые мы обычно нажимаем задолго до запуска дискового пространства)

Решение - периодически удалять временные файлы. Я просто делаю это вручную примерно 2-4 раза в год. Самый безопасный подход, вероятно, заключается в том, чтобы отключить ваши агенты сборки, а затем очистить временную папку, а затем снова активировать агенты (и не может быть плохой идеей перезагрузить сервер в то же время, если он работает в течение нескольких месяцев).

Альтернативой может быть установка небольшой запланированной задачи ежедневно/еженедельно, которая очищает любые временные файлы старше нескольких дней и запускает их в середине ночи, когда вы ничего не знаете (например, ночные сборки) бежать.

Или, если ваш сервер будет перезагружен несколько раз в год в любом случае, запуск script, который очищает временную папку до запуска агентов сборки, может быть чистым и опрятным решением.

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