Atlassian Crucible очень медленно работает с большим хранилищем


8

Моя компания уже несколько месяцев проводит испытания Atlassian Crucible. Пользователи репозиториев, в которых он работает должным образом, дали очень положительные отзывы об инструменте. У меня проблема в том, что у нас есть несколько разных проектов, каждый со своим репозиторием, и некоторые из этих репозиториев очень большие. В частности, один репозиторий имеет большое количество веток и около 9000 файлов на ветку. Просматривать этот репозиторий в Crucible крайне медленно.

Тигель работает на CentOS VM. Виртуальная машина имеет 4 ГБ ОЗУ, и я установил максимальный уровень Crucible в 3 ГБ, из которых в настоящее время он использует 2 ГБ. Я упомянул об этом в заявке в службу поддержки Atlassian, и они предложили следующее:

В частности, поскольку у вас довольно большой SVN-репозиторий, вы, вероятно, обнаружите, что Fisheye будет создавать большой индексный файл на диске. Чтобы улучшить производительность, можно попробовать несколько вещей:

Я пробовал все эти вещи в некоторой степени, но до сих пор никто не помог. Первоначально я запускал Crucible на Windows-коробке с 2 ГБ оперативной памяти, используя встроенную базу данных HSQL. Переход на MySQL на CentOS привел к увеличению производительности некоторых репозиториев и сделал Crucible намного более стабильным, но, похоже, не сильно помог с нашим самым большим репозиторием. Есть только очень много файлов / веток, которые я могу исключить из индексации, сохраняя полезность инструмента.

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

Спасибо!

Edit: Для того, чтобы уточнить, так как я не упоминал об этом явно выше, я имею в использовании Fisheye.

Редактировать 2: С тех пор, как я впервые опубликовал это, производительность несколько улучшилась с новыми выпусками Crucible, но это все равно не очень хорошо. Похоже, что эта проблема затрагивает многих пользователей , в том числе некоторых с гораздо более мощным оборудованием, чем мы используем. Таким образом, я не считаю, что это аппаратная проблема, а скорее проблема с присущей ей неэффективностью в Crucible. Atlassian знает об этой проблеме и будет включать дальнейшие улучшения производительности в будущих выпусках, так что, надеюсь, эти изменения решат наши проблемы.

Редактировать 3: я забыл, как давно я задавал этот вопрос, поэтому в моем предыдущем редактировании я не упомянул, что наша аппаратная ситуация также изменилась с тех пор, как она была задана изначально. Сейчас мы запускаем Crucible на выделенном физическом сервере, все еще используя CentOS. Аппаратное обеспечение по-прежнему остается скромным (4 ГБ ОЗУ, четырехъядерный ЦП и два диска объемом 500 ГБ в RAID 1 с внешним резервным копированием), но мы немного увеличили производительность, когда отошли от ВМ.


Я знаю, что это старый вопрос, но, к сожалению, любой, кто найдет его с помощью поиска, в моем (очень ограниченном) недавнем опыте, просто перенес базу данных на внешний экземпляр PostgreSQL, даст вам значительное ускорение для больших репозиториев (очевидно, это предполагает, что машина достаточно мощный для запуска приличного размера экземпляра postgres; я также немного подправил настройки вакуума для своего оборудования, но из коробки это было быстрее). Это резко сократит время доступа к диску, а производительность и удобство использования будут намного лучше, чем у mysql (или, по крайней мере, похоже, что для fecru)
Сэм Уайтед

Ответы:


2

Поскольку миграция на 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 во время сканирования большого хранилища. Кроме того, я не уверен, что еще вы могли бы посмотреть (возможно, скорость диска? Частота сканирования репозитория?), Но, надеюсь, приведенные выше советы помогут немного.


Спасибо за подробный ответ. Я обновил свой исходный вопрос, так как забыл включить обновленную информацию об оборудовании в мое предыдущее редактирование. Скорость сети, вероятно, является проблемой при начальном индексировании, но не должна вызывать проблем после создания индексов (в этом мы видим большую боль при просмотре проиндексированных файлов). В итоге мы переместили Crucible на выделенный физический блок и увидели скромное повышение производительности. Большинство наших разработчиков используют Chrome, и я предупреждал всех, кто использует Crucible NOT, использовать IE в качестве движка JavaScript (в любом случае, до IE9) очень медленно.
Митч Линдгрен

Я не знал, что ранее просмотренные файлы были сохранены в памяти, поэтому я обязательно расскажу всем обновиться, когда дела пойдут медленно. К вашему сведению, Atlassian полностью отказался от поддержки разъема Eclipse, на что я получил много жалоб. У них есть коннекторы для других IDE, но Eclipse для нас очень важен. Что касается филиалов, некоторые из наших команд не используют их, а некоторые широко. Команды, которые не используют ветки, в порядке. Команды, которые действительно сталкиваются с серьезной медлительностью. К сожалению, просить их изменить свой процесс не может быть и речи.
Митч Линдгрен

Ранее я изучал производительность MySQL и сделаю это снова. Похоже, что большое узкое место просто пересекает индексные файлы. Здесь может помочь более быстрый диск, но наши диски уже довольно быстрые (хотя и не на вершине. Прежде чем перейти на новый сервер, я ожидал много операций ввода-вывода, но больше я их не вижу). Я думаю, все, что я могу теперь сделать, это ждать рекламируемых улучшений производительности Atlassian. Однако я собираюсь отметить ваш ответ как принятый, так как я думаю, что он содержит много ценной информации для тех, кто может оказаться в такой же ситуации.
Митч Линдгрен

1

> 4 ГБ ОЗУ не являются «безумно мощным» оборудованием. Предполагая, что у вас 25 пользователей и вы используете Fisheye (о котором вы упомянули), вы тратите 4400 долларов только на программное обеспечение. 4 тысячи долларов в Dell могли бы купить сервер с 48 ГБ оперативной памяти.

Кроме того, вы используете 64-битную JVM? Документы предполагают, что на 32-разрядной JVM вы заметите лучший объем памяти (как и меньше).


Спасибо за информацию. Мы используем 64-битную JVM. Я посмотрю, смогу ли я перейти на 32-разрядную версию и посмотрю, поможет ли это. Редактировать: Упс - нажмите ввод, и он сохранил мой комментарий вместо добавления новых строк. Виноват. Что касается аппаратного обеспечения, это что-то вроде уловки: ситуация с аппаратным обеспечением находится вне моего контроля, и мне трудно оправдать увеличение расходов, пока мы не узнаем, что инструмент будет работать для всех команд, которым необходимо его использовать. Я посмотрю, можно ли что-нибудь сделать с существующей настройкой (например, выделить больше памяти для этой виртуальной машины.)
Митч Линдгрен,

Извиняюсь за двойное комментирование, но еще один вопрос: вы уверены, что память - это проблема? Я понимаю, что 4 ГБ - это немного, но Fisheye / Crucible даже не достигают максимума в 3 ГБ, который я установил на JVM.
Митч Линдгрен

Я не уверен, что это ваша проблема, но я просто указывал, что это не "безумно мощный". Хотя он работает плохо, не могли бы вы собрать системную статистику? Run top, iostatи этажерку, и посмотреть , что больно.
Билл Вайс

«Безумно могущественный» был плохим выбором слов. Я просто чувствую, что сервер за 4000 долларов с 48 ГБ ОЗУ является чрезмерным требованием для веб-приложения, которое используется очень немногими разработчиками.
Митч Линдгрен

3
$ 4400/25 пользователей / 2 года == $ 88 / dev / year. Сколько часов в году нужно вам, чтобы спасти?
Билл Вайс

0

Хотя я на самом деле не пробовал это сам, у меня точно такие же симптомы, как и у вас.

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

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

Если кто-то еще видит это и может сообщить об успехе / неудаче с этим переключателем, пожалуйста, прокомментируйте здесь.

Да, и я запускаю 2.7.13 с теми же проблемами с производительностью.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.