Как улучшить производительность обновления клиента Windows Subversion? - PullRequest
10 голосов
/ 12 июня 2009

Как улучшить производительность обновления клиента Subversion? Похоже, что диск привязан к клиенту.

подробности:

  • Клиент CollabNet для Windows, версия 1.6.2 (r37639)
  • Windows XP SP2
  • 3 ГБ ОЗУ с использованием PF около 1 ГБ и системным кешем 1,1 ГБ.
  • На диске включено кэширование записи
  • Обновление занимает 7-15 минут (когда очень мало для обновления).
  • Оформление заказа содержит 36 083 каталогов / файлов (из списка SVN)
  • Хранилище имеет 58 750 ревизий.
  • Оформление заказа занимает около 2,7 ГБ
  • Во время обновления Perf Monitor показывает% времени записи на диск около 90%.
  • Максимальное число прочитанных дисков в байтах / сек.
  • Процессор, использование файла подкачки и использование сети все низки.
  • Наблюдение за производительностью сервера, похоже, показывает, что это не узкое место.

Меня особенно интересуют ответы помимо получения более быстрого диска (особенно изменения конфигурации).

Обновления от некоторых предложений:

  • Мне нужно все это, чтобы разреженные каталоги не работали.
  • Другой клиент (TortoiseSVN) также занимает 7 минут
  • Значения наложений TortoiseSVN настроены таким образом, чтобы они не вызывали проблему.
  • Антивирус настроен на пропуск этого каталога, если он не вызывает проблемы.

Ответы [ 8 ]

2 голосов
/ 25 ноября 2009

Я испытываю точно то же самое. Недавно заменил Perforce на svn, но если мы не можем преодолеть проблемы с производительностью в Windows, я должен рассмотреть другой инструмент. Использование SVN 1.6.6, Win XP и Vista клиентов. RedHat сервер. Мои наблюдения совпадают с вашими:

  • Огромная активность записи на диск.
  • Антивирус не является узким местом.
  • Независимо от того, где используются svn-клиенты.
  • Нет узких мест на сервере или в сети.

Дополнительная информация Более чем в 3 раза быстрее операций на:

  • Linux (Ubuntu).
  • Linux (Ubuntu) работает на VirtualBox на хосте Win Vista.
  • Win XP работает на VMWare на хосте RedHat.
1 голос
/ 06 декабря 2009

Попробуйте svn клиент версии 1.5. . Это помогло мне на моем ноутбуке Vista. Версии 1.6. чрезвычайно медленные.

1 голос
/ 12 июня 2009

Вам нужен каждый бит хранилища в вашей рабочей копии? Если вы действительно заботитесь только об определенных частях дерева, загляните в Subversion Sparse Directories (a.k.a. "Sparse Checkouts"). Он позволяет вам манипулировать вашей рабочей копией, чтобы он содержал только те каталоги, которые вас интересуют.

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

0 голосов
/ 26 апреля 2012

Обновление до SVN 1.7

С Обсуждение низкой производительности обновления SVN :

Процесс обновления в SVN 1.6 идет примерно так:

  1. поиск по всей рабочей копии, чтобы увидеть, что там в данный момент, и заблокировать ее, чтобы никто не изменил ответ на следующих шагах
  2. скажи это серверу
  3. получать с сервера все новое, что вам нужно, применяя изменения к файлам по ходу работы
  4. снова обработать всю рабочую копию, разблокировав ее

Если имеется много каталогов и файлов, шаги 1 и 4 могут занять много времени. Это будет соответствовать вашему наблюдению за задержки без сетевого трафика.

Формат рабочей копии был изменен в SVN 1.7. Теперь вся мета информация хранится в базе данных SQLite в корневой папке рабочей копии, и больше нет необходимости выполнять шаги 1 и 4, которые занимали большую часть времени в течение svn update.

0 голосов
/ 25 ноября 2009

Никто, кажется, не указывает на одну причину, по которой я часто рассматриваю недостатки дизайна. Subversion создает вторую «нетронутую» копию оформления для автономных операций. Если вы проверяете 4G файлов, это на самом деле записывает 8G на диск.

Сравнить оформление заказа с экспортом. Это покажет вам огромную разницу при написании этих вторых копий.

С этим ничего не поделаешь.

0 голосов
/ 12 июня 2009

Запускаете ли вы средство проверки на вирусы, которое использует проверку при доступе? Это действительно может заставить его ползти. Если это так, выключите его и посмотрите, поможет ли это. У большинства сканеров есть способ исключить определенные каталоги, если это поможет.

0 голосов
/ 12 июня 2009

Вы используете TortoiseSVN? Если это так, наложения значков замедляют работу. Если вы перейдете к настройкам TortoiseSVN / «Наложения значков», есть несколько настроек, которые можно настроить для управления уровнем, на котором вы хотите использовать наложения, включая их полное отключение. Посмотрите, влияет ли это на вашу производительность.

0 голосов
/ 12 июня 2009

Скорее всего, это будет ваша сеть и объем перемещаемых данных, а также ваш клиент. Вы используете черепаху? Я нахожу это немного медленным при перемещении такого количества данных!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...