Разумно ли использовать виртуальный диск на сервере сборки? - PullRequest
16 голосов
/ 09 августа 2010

В моей компании мы в настоящее время изучаем различные стратегии для ускорения наших сборок CI. Мы профилировали наши сборки и определили, что мы ограничены узким местом ввода / вывода. У нас есть довольно много вариантов, чтобы справиться с этим в ближайшем будущем (~ 1-2 месяца), но мы действительно хотели бы видеть улучшение сейчас .

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

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

Ответы [ 2 ]

11 голосов
/ 09 августа 2010

Пока у вас достаточно памяти, это очень разумная вещь.

Единственный реальный недостаток - естественно, ваша сборка теряется при отключении / сбое питания, которое обычно не представляет большой проблемыдля сборки CI.

1 голос
/ 04 апреля 2011

Я только что провел несколько тестов на своем «сервере сборки» (на самом деле это скрипт Powershell), который извлекает 3600 файлов из Subversion, компилирует их (DOT.NET) и запускает некоторые модульные тесты.

На моем обычном (не супер быстром) жестком диске этот процесс занимает 35 секунд.

Использование инструмента Dataram RamDisk со стандартной установкой FAT32 в Windows 7 занимает 45 секунд.

Переформатирование с NTFS сокращает это до 30 секунд.

Но использование SSD (в моем случае OCZ Vertex 2) занимает всего 27 секунд.

Я провел несколько тестовых прогонов, но время всегда одинаковое.

Что мы можем извлечь из этого?

Ram диск не всегда быстрее, убедитесь, что вы тестируете разные продукты с разными настройки.

Твердотельный накопитель может быть даже быстрее, чем RAM-диск, что меня удивило.

...