Моя компания уже несколько месяцев проводит испытания Atlassian Crucible. Пользователи репозиториев, в которых он работает должным образом, дали очень положительные отзывы об инструменте. У меня проблема в том, что у нас есть несколько разных проектов, каждый со своим репозиторием, и некоторые из этих репозиториев очень большие. В частности, один репозиторий имеет большое количество веток и около 9000 файлов на ветку. Просматривать этот репозиторий в Crucible крайне медленно.
Тигель работает на CentOS VM. Виртуальная машина имеет 4 ГБ ОЗУ, и я установил максимальный уровень Crucible в 3 ГБ, из которых в настоящее время он использует 2 ГБ. Я упомянул об этом в заявке в службу поддержки Atlassian, и они предложили следующее:
В частности, поскольку у вас довольно большой SVN-репозиторий, вы, вероятно, обнаружите, что Fisheye будет создавать большой индексный файл на диске. Чтобы улучшить производительность, можно попробовать несколько вещей:
- Увеличение доступной памяти доступно для Fisheye.
- Миграция на внешнюю базу данных .
- Исключение файлов и каталогов из вашего индекса, которые не нужны .
Я пробовал все эти вещи в некоторой степени, но до сих пор никто не помог. Первоначально я запускал Crucible на Windows-коробке с 2 ГБ оперативной памяти, используя встроенную базу данных HSQL. Переход на MySQL на CentOS привел к увеличению производительности некоторых репозиториев и сделал Crucible намного более стабильным, но, похоже, не сильно помог с нашим самым большим репозиторием. Есть только очень много файлов / веток, которые я могу исключить из индексации, сохраняя полезность инструмента.
В таком случае, есть ли у кого-нибудь какие-либо советы о том, как ускорить Crucible на больших репозиториях, не вкладывая в безумно мощное оборудование?
Спасибо!
Edit: Для того, чтобы уточнить, так как я не упоминал об этом явно выше, я имею в использовании Fisheye.
Редактировать 2: С тех пор, как я впервые опубликовал это, производительность несколько улучшилась с новыми выпусками Crucible, но это все равно не очень хорошо. Похоже, что эта проблема затрагивает многих пользователей , в том числе некоторых с гораздо более мощным оборудованием, чем мы используем. Таким образом, я не считаю, что это аппаратная проблема, а скорее проблема с присущей ей неэффективностью в Crucible. Atlassian знает об этой проблеме и будет включать дальнейшие улучшения производительности в будущих выпусках, так что, надеюсь, эти изменения решат наши проблемы.
Редактировать 3: я забыл, как давно я задавал этот вопрос, поэтому в моем предыдущем редактировании я не упомянул, что наша аппаратная ситуация также изменилась с тех пор, как она была задана изначально. Сейчас мы запускаем Crucible на выделенном физическом сервере, все еще используя CentOS. Аппаратное обеспечение по-прежнему остается скромным (4 ГБ ОЗУ, четырехъядерный ЦП и два диска объемом 500 ГБ в RAID 1 с внешним резервным копированием), но мы немного увеличили производительность, когда отошли от ВМ.
Ответы:
Поскольку миграция на MySQL внесла заметные изменения в некоторые репозитории, рассмотрите возможность настройки базы данных для дальнейших улучшений. Изменение некоторых
my.cnf
значений по умолчанию может иметь огромное значение. См. Основы оптимизации производительности InnoDB для получения дополнительной информации. Также проверьте медленные запросы, включив медленный журнал запросов и добавьте индексы, где это необходимо.Следующим моим предположением будет скорость сети: находится ли ваш экземпляр Crucible в той же проводной локальной сети, что и ваши репозитории SVN? Вы также можете попробовать запустить Crucible на той же машине, что и основной репозиторий, если это возможно, чтобы устранить задержку в сети как виновника.
И я знаю, что это может быть сложно в зависимости от вашей рабочей среды, но запуск Crucible на виртуальной машине, вероятно, не помогает; Atlassian отмечает это на своей очень короткой странице « Лучшие практики для конфигурации тиглей». Я уверен, что вы уже сталкивались с этим, но я также упомяну страницу Tuning FishEye для других читателей.
У меня также есть проблемы с производительностью для больших проектов, но я приписываю большую медлительность тяжелому веб-интерфейсу Crucible. Это особенно верно после небольшого щелчка (ранее просмотренные страницы в обзоре остаются в окне браузера, даже если они скрыты от глаз). Наши разработчики заметили небольшое увеличение скорости при переходе на Google Chrome. Также проверьте Atlassian IDE Connector, если для вашей среды разработки существует совместимый плагин. В последний раз, когда я использовал его (много месяцев назад), у Eclipse IDE Connector были свои проблемы, но он мог по крайней мере обрабатывать большие наборы файлов без зависания.
В зависимости от практики разработки вашей компании, вы можете прекратить сканирование большого количества веток кода (при условии, что многие из них больше не активны) и отключить репозитории для завершенных / мертвых проектов, пока они не понадобятся. В моей компании работают очень маленькие команды по большому количеству проектов, поэтому большую часть времени мы работаем, в основном
trunk
, за исключением филиалов; поэтому мы явно добавляем ветви для сканирования вместо того, чтобы включать все ветви по умолчанию. Также убедитесь, что вы случайно не сканируете теги.Как ваша загрузка процессора на коробке Crucible? Если вы используете SVN за Apache HTTPD, проверьте, сколько подключений использует Crucible во время сканирования большого хранилища. Кроме того, я не уверен, что еще вы могли бы посмотреть (возможно, скорость диска? Частота сканирования репозитория?), Но, надеюсь, приведенные выше советы помогут немного.
источник
> 4 ГБ ОЗУ не являются «безумно мощным» оборудованием. Предполагая, что у вас 25 пользователей и вы используете Fisheye (о котором вы упомянули), вы тратите 4400 долларов только на программное обеспечение. 4 тысячи долларов в Dell могли бы купить сервер с 48 ГБ оперативной памяти.
Кроме того, вы используете 64-битную JVM? Документы предполагают, что на 32-разрядной JVM вы заметите лучший объем памяти (как и меньше).
источник
top
,iostat
и этажерку, и посмотреть , что больно.Хотя я на самом деле не пробовал это сам, у меня точно такие же симптомы, как и у вас.
В настоящее время я рассматриваю отключение хранимой информации о различиях для репозиториев, нарушающих работу. Я задал вопрос на сайте вопросов и ответов Atlassian и получил несколько многообещающих советов.
Моя проблема та же - индексация не проблема, это огромная площадь диска, работающая на плохо работающем дисковом массиве в виртуальной машине. Поскольку я не могу обновить диск в настоящее время, мне нужно найти другой способ обойти его. Ответчик в моем посте выше говорит, что удаление различий информации уменьшит занимаемую площадь диска за счет потери возможности поиска добавленных / удаленных строк . Хотя он также предполагает, что это не повлияет на скорость просмотра файлов с длинной историей.
Если кто-то еще видит это и может сообщить об успехе / неудаче с этим переключателем, пожалуйста, прокомментируйте здесь.
Да, и я запускаю 2.7.13 с теми же проблемами с производительностью.
источник