Я пытаюсь перенести весь сайт с сервера A на сервер B. Это работает, но невероятно медленно.
Я проверил это, загрузив на свой сервер файл psd размером 100 МБ и скачав его с помощью wget ftp. Скорость передачи составила 26,76 МБ / сек.
Но когда я пытаюсь захватить весь сайт (без файла psd), требуется 5 минут, чтобы передать 92 МБ HTML-файлов. Это установка WordPress с темой и изображениями в основном.
Это потому, что он открывает новое соединение для каждого файла? Я пробовал сделать это с помощью библиотеки ftp php, но это заняло столько же, если не больше.
scp, ssh не подходят, потому что в 98% случаев я не владею сервером, поэтому мне приходится работать с каким-то ftp. Я использую:
wget -r ftp://user:pass@domain.com/dir is what I'm using.
Это не так просто, как -r
Я допускаю, но вы можете попробовать это: составьте список файлов, разделите этот список, например, шесть частей и запустите wget по шесть раз одновременно с каждой частью списка. Краткий обзор совокупной скорости передачи должен сказать вам, является ли количество файлов проблемой.
wget
будет пытаться сохранить соединение открытым, но даже при одном подключении на стороне сервера возникают значительные накладные расходы на обслуживание каждого запроса, что, скорее всего, является причиной замедления, которое вы наблюдаете.
Всегда медленнее передавать много файлов, чем один большой файл. Заархивируйте содержимое своего веб-сайта, и передача будет происходить намного быстрее. Ты можешь использовать tar
сделать это.
вы не можете ускорить передачу, так как он устанавливает соединение для каждого файла, но попробуйте ftpcopy что позволяет зеркалировать ftp
с сайта ftpcopy:
Скорость
ftpcopy потребовалось около 110 секунд для копирования моего сайта. Последующие запуски, при которых ничего не нужно копировать, занимают около 1,04 секунды. зеркалу потребовалось около 250 секунд, чтобы скопировать мой сайт. Последующие запуски, при которых ничего не нужно копировать, занимают около 2,6 секунды.