Уменьшение объема хранилища пакетов Azure Devops

Фон

Компания, в которой я работаю, рассматривает возможность перехода на Azure Devops. Мы реализуем несколько пилотных проектов и заметили, что уже превысили порог бесплатного уровня хранения для пакетов, что нас удивило:

По крайней мере, наши собственные nugets обычно не такие уж большие (КБ, возможно, младшие МБ), поэтому совершенно неожиданно, что мы уже сталкиваемся с этим.

Что я сделал

Я выполнил ручную очистку старых версий nuget, которые мы создали, и это нормально, потому что мы все еще находимся в пилотном режиме. Я также вручную обновил корзину.

Я также сократил политику хранения:

Я предполагаю, что, возможно, это ничего не ловит, потому что мы все еще слишком активно используем наши пакеты.

В документации MS указано, что может пройти до 24 или даже 48 часов, прежде чем вы увидите снижение числа Used. Однако это окно прошло, и теперь между ним еще и выходные.

Кажется, это имело 0 эффекта.

Раздражает также то, что в обзоре артефактов не упоминается размер пакета, поэтому я не знаю, какие из них занимают больше всего места.

Артефакты внешнего пакета

Я вижу множество внешних пакетов, на которые ссылается наш собственный канал:

  • Microsoft.AspNetCore.*
  • Microsoft.Расширения.*
  • Время выполнения.*
  • Система.*
  • ...

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

Вопрос

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

Что я могу сделать, чтобы снова получить пакеты размером менее 2 ГиБ?


Обновление ответа

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

Этот другой проект в основном связан с интерфейсом, поэтому я посоветовался со своим коллегой. Он исследовал это и сообщил, что выводы private feed неверны. Посылки хранились и заряжались.

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

Это не имеет никакого отношения к тому, как вы создаете пакеты, поэтому удалите тег asp.net-core.

Richard 12.08.2024 10:59

Есть статья на b;pg: Оптимизация хранения посылок (и затрат!): очистили ли вы корзину, поскольку она включена в счет?

Richard 12.08.2024 11:09

Я видел этот блог, действительно видел.

kbd 12.08.2024 11:10

Это может быть полезно: когда удаляются прогоны.

Rui Jarimba 12.08.2024 11:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете перейти в «Настройки организации» > «Артефакты» > «Хранилище», чтобы проверить, какие каналы (включая organization-scoped и project-scoped) использовали какой объем хранилища.

На странице выше вы можете увидеть, какой канал использует большой объем памяти. Затем вы можете перейти в этот канал, чтобы удалить ненужные пакеты.


Что касается политик хранения, установленных в каждом фиде, я заметил, что вы установили:

  • от «Maximum number of versions per package» до «5»
  • «Days to keep recently downloaded packages» на «30»

Однако вам необходимо знать, что любые версии пакетов, загруженные в течение последних 30 дней, будут сохранены, даже если количество версий пакета превышает 5. Например, если за последние 30 дней из канала было загружено 10 версий пакета, все 10 версии (а не только 5 версии) будут сохранены. Подробнее см. в разделе «Автоматическое удаление пакетов с помощью политик хранения».

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


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


Я видел это, но там не было никакой информации, я предполагал, что у меня нет на это прав. Но я попробовал еще раз и теперь вижу, что мой проект действительно занимает не так много, 294 МиБ. Это еще один проект той же организации (компании), который занимает 2,23 ГиБ, так что это суммируется (в обе стороны).

kbd 12.08.2024 13:08

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

Bright Ran-MSFT 12.08.2024 13:29

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

kbd 12.08.2024 13:46

Другие вопросы по теме

Как создать скрипт в учетной записи автоматизации для получения квот и используемой емкости для каждого общего файлового ресурса
Триггер нескольких репозиториев Azure. Почему он срабатывает несколько раз для одной и той же фиксации?
Невозможно воспроизвести приложение на основе холста после его импорта в другую среду/другой клиент (с использованием инструментов сборки Azure DevOps PP)
Azure Pipeline не удается извлечь подмодуль
Каковы варианты миграции VSS 6.0 в Azure DevOps, если у вас нет VSS 2005?
Как вставить CSV-файл из Azure Repo в базу данных SQL Azure через конвейер выпуска?
«project.assets.json не имеет цели для «net8.0-windows10.0.22621.0»», но есть, и восстановление пакета прошло успешно?
Использование C#: импорт репозитория Azure DevOps
Как устранить ошибку ##[error]Команда Dotnet завершилась с ненулевым кодом выхода в следующих проектах: ошибка [ '' ]?
Передача данных из учетной записи хранения Azure в репозиторий Azure DevOps ежедневно