Автор | Сообщение |
|
| |
Пост N: 4448
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 15:46. Заголовок: Копирование большого файла по сети
У себя в проге (вспомогательной) создаю архив базы каждый час и затем этот архив копирую по сети с сервера на архивный комп. При этом сеть (канал сервер - комп цель) грузится на 100 %. Архив с каждым днем растет. Сейчас он занимает 165 метров и весь процесс копирования занимает 15 секунд. В тот момент когда архив копируется в основной программе народ получает 15 секундный тормоз и очень ощутимый. Это и понятно почему так как канал забит. Как избежать тормоза при копировании по сети ?
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 428
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 16:00. Заголовок: Dima пишет: каждый ..
Dima пишет: цитата: | каждый час и затем этот архив копирую по сети с сервера на архивный комп |
| Дима, а зачем каждый час на архивный комп то ? Держи рабочую почасовку на сервере , а на архивный во внерабочее время по шедулеру с удалением с сервера. Сам так поступаю, средствами ADS полный почасовой бекап базы , а в 2 ночи все уезжает в хранилище и там циклически храниться не старше 2 месяцев
|
|
|
|
| |
Пост N: 4449
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:02. Заголовок: Haz пишет: Дима, а ..
Haz пишет: цитата: | Дима, а зачем каждый час на архивный комп то ? |
| Так заказали Игорь , мол на тот случай если упадет основной сервер. Haz пишет: цитата: | Держи рабочую почасовку на сервере , а на архивный во внерабочее время по шедулеру с удалением с сервера. |
| Такая мысль была , но работают там 24 часа в сутки. Вне рабочее время только с субботы с 17-00 до воскресения 14-00
|
|
|
|
| постоянный участник
|
Пост N: 3937
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.02.15 16:04. Заголовок: Dima пишет: Как изб..
Dima пишет: цитата: | Как избежать тормоза при копировании по сети ? |
| Делай копирование порциями (блоками 32Кб или 64Кб - вычисли самостоятельно). И делай длительную паузу между копировании порций. А в паузе НЕ ДЕЛАЙ типа INKEY(30) - а то проц грузится...
|
|
|
|
| |
Пост N: 4450
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:09. Заголовок: Andrey пишет: Делай..
Andrey пишет: цитата: | Делай копирование порциями |
| Да я помню что был где то примерчик у нас на форуме но пока не могу найти.
|
|
|
|
| |
Пост N: 429
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 16:10. Заголовок: Чем копируешь ? Ког..
Чем копируешь ? Когдато для этой цели использовал RoboCopy - оч грамотно и быстро работает в сети. ли установи Acronis BackUp и забудь про бекапы )) У меня на рабочем компе стоит с инкрементальными бэкапами всех исходников каждый час и с поддержкой до 5 версий
|
|
|
|
| |
Пост N: 4451
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:12. Заголовок: Haz пишет: Чем копи..
Haz пишет: Вот этим hb_DynCall( { "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL }, cSource, cDest, 0 ) То есть какие то чужие вспомогательные проги не используются , все свое самописное.
|
|
|
|
| |
Пост N: 430
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 16:20. Заголовок: Dima пишет: все св..
Dima пишет: тогда бить архив на тома размером 1.5 МБ и копировать их с таймаутом в 5 мин. должно в итоге за час получиться 10 тормозов длительностью 1.5 секунды ) потерпеть можно Бить можно на сервере и не склеивать на архивном а делать это при необходимости восстановления
|
|
|
|
| |
Пост N: 4452
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:25. Заголовок: Haz HB_ZIPFILEByTDS..
Haz HB_ZIPFILEByTDSpan разве умеет бить на тома ? Смотрю примерчик C:\MiniGUI\SAMPLES\BASIC\Filecopy\ , вариант однако и там же можно вставить задержку. Вот только работает ли Fcreate , Fopen c UNC путями не знаю и надо проверять. Проверил. Пашет fcreate("\\127.0.0.1\Sklad$\test555.txt")
|
|
|
|
| |
Пост N: 431
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 16:28. Заголовок: порезать можно уже г..
порезать можно уже готовый ZIP "своим" сплитером из программы
|
|
|
|
| |
Пост N: 4453
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:36. Заголовок: Haz Тоже вариант :..
Haz Тоже вариант
|
|
|
|
| |
Пост N: 432
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 16:39. Заголовок: Dima пишет: Смотрю ..
Dima пишет: цитата: | Смотрю примерчик C:\MiniGUI\SAMPLES\BASIC\Filecopy\ |
| как вариант пойдет, особенно если докачку там прикрутить в случае падения сети
|
|
|
|
|
| |
Пост N: 4454
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 16:47. Заголовок: Haz пишет: особенно..
Haz пишет: цитата: | особенно если докачку там прикрутить в случае падения сети |
| Не совсем понял мысль как ее там прикрутить. Думаю и без нее покатит.
|
|
|
|
| |
Пост N: 120
Зарегистрирован: 21.04.13
|
|
Отправлено: 01.02.15 17:14. Заголовок: А зачем вообще загружать сеть ?
К серверу подключается внешний USB-диск 2 Тбайт и на него все копировать, минуя сеть.
|
|
|
|
| |
Пост N: 4455
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 17:16. Заголовок: Haz пишет: Сам так ..
Haz пишет: цитата: | Сам так поступаю, средствами ADS полный почасовой бекап базы |
| Должен заметить что средствами ADS копирование идет очень медленно в отличие от связки Clipper + Ads + IPX - тут работало моментально. Поэтому для копирования базы юзаю hb_DynCall( { "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL }, cSource, cDest, 0 ) через RPC NET:
|
|
|
|
| |
Пост N: 433
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 18:14. Заголовок: Dima пишет: Должен ..
Dima пишет: цитата: | Должен заметить что средствами ADS копирование |
| не копирование, а создание копии базы. На сервере очень быстро через cSql := "EXECUTE PROCEDURE sp_BackupDatabase( ... )" или утилитой AdsBackUp.exe получается полная копия всех таблиц и словаря. Которую потом можно развернуть через cSql := "EXECUTE PROCEDURE sp_RestoreDatabase(...) PS. К тому же простое копирование не всегда идет т.к. таблицы залочены пользователями
|
|
|
|
| |
Пост N: 4456
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 18:17. Заголовок: а ну тогда да :sm12..
а ну тогда да а я тёр про это AdsCopyTable
|
|
|
|
| |
Пост N: 434
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 18:22. Заголовок: если докачку там при..
если докачку там прикрутить в... имел в виду логику Проверяем есть ли файл приемник , если нет - тупо копируем, если есть - проверяем длину ( и м.б. контрольную сумму по желанию ) . Дальше устанавливаем в источнике указатель файла на длину приемника и дописываем остаток в конец. Тогда если при копировании 100 мб из 150 прошел сбой - то допишем только 50
|
|
|
|
| |
Пост N: 4457
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 18:23. Заголовок: Haz пишет: имел в в..
Haz пишет: Понял
|
|
|
|
| |
Пост N: 435
Зарегистрирован: 20.02.11
|
|
Отправлено: 01.02.15 18:34. Заголовок: Haz пишет: HB_ZIPFI..
Haz пишет: цитата: | HB_ZIPFILEByTDSpan разве умеет бить на тома ? |
| умеет, надо задать размер в 7 параметре
|
|
|
|
| |
Пост N: 4458
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.02.15 18:38. Заголовок: ну как бы глянув в и..
ну как бы глянув в исходник вижу HB_SYMBOL_UNUSED( nSpanSize ) /* NOTE: Spanning not supported. */
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|