У меня есть репозиторий SVN за HTTPS-сервером Apache, в котором хранятся маленькие и большие (+ 1 ГБ) файлы. Когда я передаю большой файл, скорость передачи составляет около 10 МБ/с (используя сетевую линию 1 Гбит). Когда я смотрю на загрузку ЦП на сервере, она насыщена: около 85% потребляется apache2 и около 15% - драйвером диска.
Я уже пытался отключить ведение журнала Apache и SSL, но это не помогло улучшить скорость передачи. Это заставляет меня думать, что mod_dav_svn
использует большую часть ЦП? Я также пытался увеличить количество доступных ядер на сервере (по умолчанию = 1 ядро), но это загадочным образом замедляет коммиты, в то время как httpd по-прежнему использует 1 ядро. И установка SVNCompressionLevel 0
также не привела к заметному увеличению скорости.
Есть ли способ значительно увеличить скорость передачи за счет распараллеливания или какой-либо другой оптимизации?
Сервер:
- Дебиан 9.3
- Апач 2.4.25
- libapache2-mod-svn 1.9.5
- Репозиторий svn: конфигурация FSFS по умолчанию (т.е. все закомментировано в
fsfs.conf
). Жесткий диск может записывать до 30 Мб/сек (аппаратно ограничено) без загрузки процессора (проверено копированием). FS - это NTFS, использующаяntfs-3g
с включеннымbig_writes
, который использует около 10-15% ЦП при записи со скоростью 10 МБ/с.
Клиент:
- свн 1.8.13
ЦП: Intel Core первого поколения с частотой 3,20 ГГц
Очевидно, я был бы очень доволен, если бы мог передавать со скоростью 25-30 МБ/сек.
SVNCacheXXX
. 12.01.2018