У нас есть система сборки на основе Linux, в которой сборка состоит из множества различных встроенных целей (с включенными соответственно разными драйверами и наборами функций), каждая из которых построена с помощью другого единственного главного исходного дерева.
Вместо того, чтобы пытаться преобразовать нашу систему на основе make во что-то более дружественное к многопроцессорности, мы хотим просто найти лучший способ запустить сборки для всех этих целей одновременно. В чем я не уверен, так это в том, как добиться максимальной производительности.
Я рассмотрел следующие возможные решения:
- Много отдельных сборочных машин. Недостатки: множество копий общего кода или работа с (медленного) общего диска. Больше систем для обслуживания.
- Меньшее количество многопроцессорных машин (возможно, двухъядерных) с быстрым чередованием локального хранилища RAID. Недостатки: я не уверен, как это будет масштабироваться. Кажется, что объем был бы узким местом, но я не знаю, насколько хорошо Linux обрабатывает SMP в наши дни.
- Подобный SMP-компьютер, но с гипервизором или Solaris 10, на котором работает VMware. Это глупо, или это обеспечит некоторые преимущества планирования? Недостатки: не устраняет проблему узкого места в хранилище.
Я собираюсь просто сесть и поэкспериментировать с этими возможностями, но я хотел проверить, не пропустил ли я что-нибудь. Спасибо!