+  HandyCache форум
|-+  Гостевая» Гостевая» HC медленно загружает некоторые сайты
Имя пользователя:
Пароль:
Страниц: 1 ... 6 7 [8] 9   Вниз
  Ответ    Отправить эту тему    Печать  
Автор Тема: HC медленно загружает некоторые сайты  (Прочитано 156033 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Доктор ТуамОсес
Гость
« Ответ #140 : 31 марта 2011, 19:15:46 »
ПроцитироватьЦитировать

Ты прям блеснул сейчас своей эрудицией! В таком случае не буду тебе рассказывать, что в INI-файле HC есть специальный параметр, который при твоих проблемах надо увеличить в зависимости от пинга.
Правильно, параметр, "который зависит от пинга сети", но не сам пинг. И про этот параметр я в курсе.
Вы же сначала сказали, что можно изменить/настроить сам пинг сети

А про хелп? Когда найду то место дам ссылку
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #141 : 24 апреля 2011, 18:47:12 »
ПроцитироватьЦитировать

Короче изменил я параметры пинга в ini-файле до 10 сек и параметры в секции "управление загрузкой":


Кэнди стал немного получше "вытягивать"  файлы.
Но всё равно когда у меня средняя скорость GPRS соединения падает до 100 байт в секунду некоторые сайты грузятся с 3-й...10-й попытки (т.е. когда в файер фоксе жмёшь кнопку "Refresh" по 3(10) раз после каждого очередного сообщения об ошибке загрузки)
П Р И   Т Е Х   Ж Е    У С  Л О В И Я Х  CoolProxy почему-то всё равно
во-первых: грузит сайты пошустрей
во-вторых: с меньшим числом неудачных попыток (как правило с 1-й и реже со 2-й попытки).

* Настройки.rar (59.54 Кб - загружено 22 раз.)
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #142 : 24 апреля 2011, 19:11:25 »
ПроцитироватьЦитировать

Может автор кэнди реализует какой-нибудь адаптивный алгоритм закачки, который сам будет менять параметры соединения (пинг, число попыток и т.п.) в зависимости от качества и скорости соединения? Ну чтобы кэнди лучше вытягивал файлы с сайтов с большим пингоом и при плохом качестве/скорости соединения?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #143 : 25 апреля 2011, 00:31:05 »
ПроцитироватьЦитировать

Короче изменил я параметры пинга в ini-файле до 10 сек и параметры в секции "управление загрузкой"

Ну и кто тебе рекомендовал ставить именно такие цифры в "Управление загрузкой"?

Пауза 12 секунд для "Время на повторные запросы без ответа" на медленном канале - это бездумный мазохизм! У меня даже на быстрой выделенке пауза 45 секунд!

В двух других настройках пауза 12 секунд дает только уменьшение количества попыток и следовательно шансов загрузить файл!

Цитировать
П Р И   Т Е Х   Ж Е    У С  Л О В И Я Х  CoolProxy почему-то всё равно
во-первых: грузит сайты пошустрей
во-вторых: с меньшим числом неудачных попыток (как правило с 1-й и реже со 2-й попытки).

Естественно! Это прямое следствие твоих неправильных настроек!
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #144 : 25 апреля 2011, 09:01:10 »
ПроцитироватьЦитировать

Ну и кто тебе рекомендовал ставить именно такие цифры в "Управление загрузкой"?

Пауза 12 секунд для "Время на повторные запросы без ответа" на медленном канале - это бездумный мазохизм! У меня даже на быстрой выделенке пауза 45 секунд!
Т.е. мне что? Поставить там секунд 150?   Шокирован




В двух других настройках пауза 12 секунд дает только уменьшение количества попыток и следовательно шансов загрузить файл!
Нет. Уменьшения числа попыток не происходит.
Ты не обратил внимание какие значения "времён" я поставил?
Т.е. я "паузы"  увеличил. Но я и "времена" тоже увеличил. Ещё больше. Поэтому кол-во попыток даже увеличилось
 Читай доки!
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #145 : 25 апреля 2011, 13:46:01 »
ПроцитироватьЦитировать

Т.е. мне что? Поставить там секунд 150?   Шокирован

Минимум 60 или вообще отключить последнюю настройку, поставив 0 в левом поле.
Когда я пользовался GPRS-ом, то так и делал. Ожидание ответа сервера больше минуты там было обычное дело. Думаю, CoolProxy ждет до победного, потому у него и шансов дождаться больше.

Цитировать
Ты не обратил внимание какие значения "времён" я поставил?
Т.е. я "паузы"  увеличил. Но я и "времена" тоже увеличил. Ещё больше.

А зачем ты так сделал? Ты думаешь, что увеличив паузы для простоя в первых двух опциях, ты увеличишь вероятность удачной закачки? Это не так. Ты просто увеличил интервалы между попытками, во время которых HC не делает ничего, он простаивает. Пусть время будет 240 секунд, но паузу больше 3-5 секунд делать бессмысленно.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #146 : 25 апреля 2011, 16:20:07 »
ПроцитироватьЦитировать

Минимум 60 или вообще отключить последнюю настройку, поставив 0 в левом поле.
Когда я пользовался GPRS-ом, то так и делал.
И что тогда будет? Кэнди будет ждать ответа до бесконечности?

А, тогда, не получится ли так, что пока кэнди будет ждать до бесконечности загрузки "плохо грузящихся" сайтов, то в очереди на не определённое время "зависнут" сайты, которые грузятся вполне себе шустро?

Кстати, это я сейчас и наблюдаю: если какая-то пачка файлов плохо грузится, то она напрочь вешает канал и не даёт скачиваться другим файлам, которые просто тупо стоят в очереди и ждут наступления таймаута.
Мне показалось (возможно я и ошибаюсь), что в CoolProxy эта проблема каким-то образом решена и "тормознутые" сайты не забивают всю пропускную способность канала. Видно менеджер очереди в CoolProxy работает более интеллектуально, чем в HandyCache. Похоже на то, что сайт, ответ от которого не был получен с первого раза за заданное время, CoolProxy автоматом  ставит в конец очереди. Наверное поэтому и общее кол-во загруженных файлов в единицу времени у CoolProxy побольше, т.е. он грузит "шустрее".


Думаю, CoolProxy ждет до победного, потому у него и шансов дождаться больше.
Нет. У CoolProxy есть параметр "максимальное кол-во попыток перед выдачей сообщения <Connect Error>"
А вот времени таймаута нет попытки в настройках нет. Видимо CoolProxy сам адаптирует это время в зависимости от скорости и качества соединения с конкретным сервером.
Хорошо бы, чтобы в HandyCache был реализован этот адаптивный алгоритм и чтобы менеджер очереди работал более интеллектуально, чтобы "плохие" сайты не вешали напрочь весь канал уменьшая пропускную способности канала до нуля
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #147 : 25 апреля 2011, 16:29:08 »
ПроцитироватьЦитировать

А зачем ты так сделал?
Потому что у меня ConnectTimeOut=10000 мС поэтому я и сделал паузы по 12 сек
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #148 : 26 апреля 2011, 11:34:46 »
ПроцитироватьЦитировать

И что тогда будет? Кэнди будет ждать ответа до бесконечности?

Будет ждать ответа ровно столько, сколько браузер сам посчитает нужным. Именно так все и работает при отсутствии прокси.

Похоже на то, что сайт, ответ от которого не был получен с первого раза за заданное время, CoolProxy автоматом  ставит в конец очереди.

Покажи в документации CoolProxy то место, где про это написано, иначе это просто твоя фантазия!

В ряде случаев прокси вообще не имеет право менять порядок запросов и должен отвечать точно в том порядке, как браузер их запросил!
Почитай про Pipelining...

Потому что у меня ConnectTimeOut=10000 мС поэтому я и сделал паузы по 12 сек

Эти параметры абсолютно никак не связаны друг с другом! Они работают последовательно, а не одновременно!


Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #149 : 26 апреля 2011, 16:36:34 »
ПроцитироватьЦитировать

Будет ждать ответа ровно столько, сколько браузер сам посчитает нужным. Именно так все и работает при отсутствии прокси.
Понял.
Спасибо за объяснение

Покажи в документации CoolProxy то место, где про это написано, иначе это просто твоя фантазия!
Технические детали реализации таких "фишек" являются "хлебом" разработчика, поэтому, как правило, не афишируются.

Я просто чисто из опыта работы с CoolProxy и HandyCache заметил, что в CoolProxy "плохие" сайты не подвешивают намертво весь канал как в HandyCache. Поэтому и общее кол-во выкачанных в единицу времени (например за 5 минут) файлов у CoolProxy больше, чем у HandyCache.

В ряде случаев прокси вообще не имеет право менять порядок запросов и должен отвечать точно в том порядке, как браузер их запросил!
Почитай про Pipelining...
Ок. Почитаю.

Эти параметры абсолютно никак не связаны друг с другом! Они работают последовательно, а не одновременно!
А можно "на пальцах" мне объяснить тогда что это такое:


* ACDSee6 BMP Image.JPG (10.8 Кб, 419x80 - просмотрено 37 раз.)

* ACDSee6 BMP Image (2).JPG (24.48 Кб, 230x320 - просмотрено 46 раз.)
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #150 : 26 апреля 2011, 16:40:56 »
ПроцитироватьЦитировать

И, главное, как все эти 7 параметров зависят друг от друга?
Т.е. как (из каких соображений) устанавливать значения этим 7-ми параметрам, чтобы значения одних параметров не противоречили значениям других
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #151 : 27 апреля 2011, 08:38:41 »
ПроцитироватьЦитировать

И, главное, как все эти 7 параметров зависят друг от друга?

Эти параметры не зависят друг от друга, потому что работают в разное время и при разных обстоятельствах.
Их описание есть в Документации, а рекомендуемые значения обсуждались в соответствующей теме: Время на повторные соединения/запросы...

Добавлено: 27 Апреля 2011, 08:25:21

ConnectTimeOut - это время в мс, в течение которого НС ждет установления соединения с сервером. Если соединение не установилось за это время, начинает работать опция "Время на повторные соединения при ошибке".

Паузы в первых двух опциях - это время в секундах после окончания предыдущей неудачной попытки до начала следующей.
« Последнее редактирование: 27 апреля 2011, 08:51:12 от DenZzz » Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #152 : 28 апреля 2011, 15:06:25 »
ПроцитироватьЦитировать

ConnectTimeOut - это время в мс, в течение которого НС ждет установления соединения с сервером. Если соединение не установилось за это время, начинает работать опция "Время на повторные соединения при ошибке".

Паузы в первых двух опциях - это время в секундах после окончания предыдущей неудачной попытки до начала следующей.

Т.е. ConnectTimeOut  - это время до 1-й ошибки, а пауза в строке "Время на повторные соединения при ошибке" - это время до 2-й, 3-й, и т.д.?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #153 : 28 апреля 2011, 20:41:31 »
ПроцитироватьЦитировать

Нет. ConnectTimeOut выжидается при каждой попытке соединения.

Алгоритм действия системы/HC примерно такой:
1-я попытка соединения. Серверу посылается запрос на установление соединения (SYN-SENT). Затем в течение времени ConnectTimeOut HC ожидает от сервера подтверждения установления соединения (SYN-RECEIVED). Если соединение не установилось (сервер не прислал SYN-RECEIVED), то попытка признается неудачной. HC выжидает паузу для "Время на повторные соединения при ошибке" и переходит к следующей попытке.
2-я попытка соединения. Все, как в 1-й попытке и т.д.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #154 : 29 апреля 2011, 03:41:36 »
ПроцитироватьЦитировать

Нет. ConnectTimeOut выжидается при каждой попытке соединения.

Алгоритм действия системы/HC примерно такой:
1-я попытка соединения. Серверу посылается запрос на установление соединения (SYN-SENT). Затем в течение времени ConnectTimeOut HC ожидает от сервера подтверждения установления соединения (SYN-RECEIVED). Если соединение не установилось (сервер не прислал SYN-RECEIVED), то попытка признается неудачной. HC выжидает паузу для "Время на повторные соединения при ошибке" и переходит к следующей попытке.
2-я попытка соединения. Все, как в 1-й попытке и т.д.


Что-то я не пойму, зачем нужна ещё и пауза в строке "Время на повторные соединения при ошибке" если есть ConnectTimeOut?

Т.е. зачем ещё ждать (и главное чего?) если достижение временем ожидания установления соединения значения ConnectTimeOut однозначно говорит, что произошла ошибка и больше ждать бессмысленно?
« Последнее редактирование: 29 апреля 2011, 03:49:32 от Доктор ТуамОсес » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #155 : 29 апреля 2011, 13:45:16 »
ПроцитироватьЦитировать

Что-то я не пойму, зачем нужна ещё и пауза в строке "Время на повторные соединения при ошибке" если есть ConnectTimeOut?

Чтобы дать серверу "передохнуть" и "одуматься"! Веселый

При слишком частых попытках соединения некоторые сервера могут заподозрить DDoS-атаку и вообще заблокируют твой IP, поэтому дана возможность настроить паузы.

Не хочешь ждать, поставь 0 в поле пауза, тогда после истечения ConnectTimeOut сразу будет новая попытка соединения.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #156 : 30 апреля 2011, 09:27:20 »
ПроцитироватьЦитировать

Чтобы дать серверу "передохнуть" и "одуматься"! Веселый

А времени, равному ConnectTimeOut, недостаточно разве, чтобы "дать серверу "передохнуть" и "одуматься""?

У меня к примеру оно равно 10 секундам. Т.е. я запросы при отсутствии соединения посылаю не чаще чем раз в 10 сек.

Это разве слишком часто?

Тогда могу сделать ConnectTimeOut равным 30 или даже 50 сек.

Никак не пойму: Зачем ещё нужна дополнительная "пауза"?
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #157 : 02 мая 2011, 01:16:57 »
ПроцитироватьЦитировать

Опытным путём (меняя значения ConnectTimeOut и параметры в секции "управление загрузкой" и анализируя логи) установил, что всё обстоит совсем не так, как описал г-н DenZzz (плохо что на вопросы, касающиеся логики работы программы отвечает не сам разработчик, а просто модератор, плохо разбирающийся в программе).

Перечислю просто то, что удалось выяснить:
1) Время между попытками установления соединения с сервером (между отправками запросов) состоит из 2-х фаз: активное ожидание и пассивное ожидание. В фазе активного ожидания (1 фаза) кенди послав запрос заданное время ожидает ответ от сервера и "слушает" сеть. В фазе же пассивного ожидания (2-я фаза) кэнди просто тупо ждёт и НЕ слушает сеть. Поэтому даже если ответ сервера всё же придёт, но придёт когда кэнди находится в режиме "пассивной ожидания", то соединение не будет установлено.
2) Длительность фазы активного ожидания определяется параметром ConnectTimeOut. Поэтому, если взять для ConnectTimeOut очень маленькое значение (например 20мС), то любой сайт НЕ будет загружен никогда НЕЗАВИСИМО от значений параметров из секции "управление загрузкой" (в частности параметра "время на повторные соединения" )
3) Параметр "Время на повторные соединения при ошибке" определяет (как это можно догадаться по названию параметра) время, которое даётся на установление соединения, начиная от момента завершения 1-й неудачной попытки.
4) Параметр "пауза" в строке "Время на повторные соединения при ошибке" оказалось довольно хитро влияет на поведение кэнди.
4.а) Если он равен нулю, то период между попытками соединения (между повторными отправками запроса на установление соединения серверу) равен не нулю, а значению параметра ConnectTimeOut и при этом во всех попытках весь период состоит только из фазы активного ожидания. Фаза пассивного ожидания при этом равна нулю. При паузе = 0 кэнди прекрасно грузит сайты если ConnectTimeOut  имеет достаточное значение (у меня 5000 мС)
4.б) Если он больше нуля, то фаза активного ожидания присутствует только в самой первой попытке. А во 2-й и последующих кэнди сразу после отправки запроса переходит в пассивную фазу (т.е. он не "слушает" сеть). Поэтому каким бы большим вы не делали кол-во попыток (увеличивая параметр "Время на повторные соединения при ошибке") соединение не будет установлено если оно не было установлено в 1-й же попытке.


Таким образом если вы хотите, чтобы кенди "слушал" сеть при всех попытках установить соединение, а не только при самой первой, то нужно параметр "пауза" в строке "Время на повторные соединения при ошибке" установить равным нулю.
В этом случае время между попытками будет равным ConnectTimeOut, а число повторных попыток будет определяться тем, сколько значений ConnectTimeOut уместятся в параметре "Время на повторные соединения при ошибке"
« Последнее редактирование: 02 мая 2011, 01:54:17 от Доктор ТуамОсес » Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #158 : 02 мая 2011, 01:37:58 »
ПроцитироватьЦитировать

Таким образом фраза
2-я попытка соединения. Все, как в 1-й попытке и т.д.
вообще говоря не верна.

Т.е., по видимому, разработчик кэнди допустил ошибку в программе.
Всё наверное так и должно было работать, как Вы, DenZzz, описали.
Но реально всё работает так как я описал: т.е. при [пауза] = 0 в повторных попытках нет фазы пассивного ожидания, а при [пауза]>0 - нет фазы активного ожидания.

А должно бы было, по идее, быть так: [пауза] = [время активного ожидания]+[время пассивного ожидания]
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #159 : 02 мая 2011, 01:48:10 »
ПроцитироватьЦитировать

DenZzz
Предлагаю не отвечать больше этому умнику. Надеюсь, ему надоест общаться самому с собой и он избавит нас от своего общества.
Сообщить модератору   Записан
Страниц: 1 ... 6 7 [8] 9   Вверх
  Ответ    Отправить эту тему    Печать  

 
Перейти в:  

+ Быстрый ответ
С быстрым ответом Вы также можете использовать BB код и смайлы.