Загадочность нашего SVN-а

SVN Карагандинского филиала АО «НАТ Казахстан» с некоторых (почитай с начала 2009 года) пор стал странно себя вести, а именно очень долго реагировать на любое взаимодействие с ним (update, check in, check out). В начале эти эффекты проявлялись не очень сильно — подождешь секунд 20-30 и все отработало, но ближе к лету ситуация стала усугубляться и время стало доходить до пары минут, получалось с Астанинским или Алмаатинским SVN-ом работать можно было плодотворнее чем с нашим, локальным.

Самое страшное творилось на сервере непрерывной интеграции: получение обновлений с SVN для начала сборки могло продолжаться от получаса до 2-3 часов. Это уже не смешно.

Как-то случайно в офисе во время обсуждения скорости работы присутствовал Василий (Номад его знает), бывший начальник отдела программеров. Он оказывается уже знал эту фичу SVN-а, так как заметил её ранее в позднее вечернее время, и метод лечения оказался очень странным: нужно копировать с сервака файлы в большом объеме тогда ему на время легчает. При опытном исследования выяснилось, что это действительно так!

При мониторинге работы сервера утилитой top (замечу что там стоит Линукс, версию скажу завтра) видно что при выполнении команд svn на сервере нагрузки на проц никакой нет, но стоит только начать копировать файл тут же видна нагрузка выдаваемая процессом samba и через секунду начинает давать нагрузку процесс svnserve, и тут же клиент SVN-а оживает. После окончания копирования (время не замеряли) SVN опять начинал тормозить. Все присутствующие были в шоке.

С тех пор я стараюсь перед работой с SVN-ом копировать с сервера файлик (там есть пара образов линухов) и экономлю расход своих нервов, да и TeamCity перестал рассказывать про проекты собирающиеся по несколько часов.

Я не на столько знаю линукс что бы даже предположить что может вызывать такую реакцию. Я даже не могу придумать что бы такого спросить у Гугла что бы он мне мог предложить совет (засыпанием сетевого интерфейса это не може быть, да и на засыпание винта не очень похоже).

Зато могу предположить из-за чего этот эффект до 2009-го года замечался только вечерами: на том же сервере крутится СУБД Informix с базами ТАИСа, которые в течении дня пользоватлись как разработчиками оного (которых тогда было еще довольно много) так и тестерами (могу ошибаться и у них был другой сервер с Informix-ом, но врятли). Скорее всего нагрузка от Informix-а на сервер дествовала примерно так же как и нагрузка от скачивания файлов, что позволяло спокойно работать с SVN-ом.

Мораль: есть еще удивительные вещи в этом мире 🙂

5 комментариев

  1. я не линуксоид (практически совсем) но могу выдать вариант причины. Сервер SVN ожидает от системы какого-то события (сообщения, прерывания — не знаю терминологии линукса) но почему-то это событие не происходит. А при копировании оно вырабатывается, причем скорее всего несколько раз в секунду (для мониторинга например). Нужно понять что это за событие и либо перенастроить SVN на другое, либо обеспечить таковое от системы.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.