+  HandyCache форум
|-+  Главная категория» Дополнения, плагины» GE.lua - расширение HC для кэширование Google Earth
Имя пользователя:
Пароль:
Страниц: 1 ... 4 5 [6] 7 8 9   Вниз
  Отправить эту тему    Печать  
Автор Тема: GE.lua - расширение HC для кэширование Google Earth  (Прочитано 98769 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #100 : 22 июня 2009, 22:38:55 »

Цитировать
Попытка закэшировать авторизацию?
Да. Это все закомментировано.
Цитировать
И ещё заметил, одиночный файл (q2-0-q.204) есть в кэше, но HC его всё равно загружает из инета, а скрипт при этом пишет, что "GE-из кэша"
Предположу, что в НС отключено Настройки/Кэш/Управление/Игнорировать no-cache. Если так, то надо включить. Из скрипта я этим параметром управлять не могу.
Цитировать
Уже ж вроде всё обсудили и обошли эти грабли?
Граблей нет. Если клинит, давай посмотрим подробней...
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #101 : 22 июня 2009, 22:48:30 »

Цитировать
Цитировать
Попытка закэшировать авторизацию?
Да. Это все закомментировано.
Это понятно, но нафиг оно вообще в скрипте если не работает? Показать, что были мысли на эту тему? Улыбка

Цитировать
Цитировать
И ещё заметил, одиночный файл (q2-0-q.204) есть в кэше, но HC его всё равно загружает из инета, а скрипт при этом пишет, что "GE-из кэша"
Предположу, что в НС отключено Настройки/Кэш/Управление/Игнорировать no-cache. Если так, то надо включить. Из скрипта я этим параметром управлять не могу.
Да, включение опции no-cache избавило от "глюка". Надо бы в шапку скрипта этот нюанс добавить.

Цитировать
Цитировать
Уже ж вроде всё обсудили и обошли эти грабли?
Граблей нет. Если клинит, давай посмотрим подробней...
А что собственно смотреть? Единственная модификация скрипта (Connection:Close) - и гугл не ждёт по 30 сек после каждого запроса "из кэша"
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #102 : 22 июня 2009, 23:01:57 »

Цитировать
Надо бы в шапку скрипта этот нюанс добавить.
Добавил.
Цитировать
А что собственно смотреть? Единственная модификация скрипта (Connection:Close) - и гугл не ждёт по 30 сек после каждого запроса "из кэша"
У меня такого нет. Причину того, что у тебя GE виснет, пока не пойму...
Попробуй отключить в НС чтение из кэша, затем запустить Гуглу, дать ей прогрузиться, потом выйти из Гуглы и снова включить чтение из кэша.
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #103 : 22 июня 2009, 23:17:18 »

Цитировать
У меня такого нет. Причину того, что у тебя GE виснет, пока не пойму...
Причина - другое железо, другая винда и другой набор софта/дров в системе. Видимо, это и вносит свою лепту.

Цитировать
Попробуй отключить в НС чтение из кэша, затем запустить Гуглу, дать ей прогрузиться, потом выйти из Гуглы и снова включить чтение из кэша.
А разве это не равносильно тому, что я удаляю кэш HC - т.е. если он и пытается что-то оттуда прочесть, то безуспешно? Такое уже делал не раз.

Да и вообще, не вижу смысла заострять внимание на этом вопросе. Решение есть, я себе эту часть в скрипт дописал - у меня заработало. Если нет желания вносить это в скрипт - хозяин барин. А если у кого-то ещё будут траблы, то они выйдут на эту тему (надеюсь).
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #104 : 22 июня 2009, 23:27:40 »

Цитировать
Причина - другое железо, другая винда и другой набор софта/дров в системе. Видимо, это и вносит свою лепту.
Нет.
Цитировать
Решение есть, я себе эту часть в скрипт дописал - у меня заработало.
ОК. Для информации сообщаю, что скрипт, использующий Connection: close, ест лишних 5-8% процессорного времени (на моем двухъядерном). Это происходит из-за постоянного создания/закрытия потоков и всего, что с ними связано (виртуальных LUA-машин и т.п.). Одновременно такой скрипт качает из сети ощутимо медленнее за счет необходимости устанавливать с сервером большое количество соединений.
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #105 : 22 июня 2009, 23:43:43 »

Цитировать
Для информации сообщаю, что скрипт, использующий Connection: close, ест лишних 5-8% процессорного времени (на моем двухъядерном).
Шокирован да ну? А на моём двухъядерном HC вообще не занимает больше 3% процессорного времени. И это с Connection:Close... И то, это в основном когда идёт подгрузка из инета, а так 0..1,5%. Или это мой двухъядерник круче?  Веселый
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #106 : 23 июня 2009, 07:25:59 »

Да, у меня отсталый. Если ему приходится работать с 1 потоком вместо 100, то работает быстрей и ест меньше ресурсов.
Во время активной работы (вращение глобуса по методике Parasite) использование ЦПУ колеблется от 0 до 11% (в случае с Connection: close от 0 до 18%).
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #107 : 23 июня 2009, 14:52:11 »

Версия 0.06 от 22.06.2009
+  Лог ошибок (файл GE.log). Если он появится в папке со скриптом, подскажите мне, плиз
*  Учитывается состояние опции НС "Разрешить чтение из кэша"
*  Изменен текст сообщений в колонке "Правила" монитора
-  Слегка улучшено использование памяти
Скрипт в его чистом виде - опять вешает клиента. Править ручками на тему Connection:Close (и тогда ОК). Читай доки!

Версия HC.182 - затык с проксированием HTTPS (secure-запросы не воспринимаются проксей, не появляются в мониторе и не обрабатываются, итог - Timeout).
HC.183 - вроде опять заработало.

Причина - другое железо, другая винда и другой набор софта/дров в системе. Видимо, это и вносит свою лепту.
Причина в другом сетевом конфиге: у Михаила, вероятно, что-то убивает коннекты по окончании передачи контента(?). Это может делать файрвол, гейт, проксик, провайдер и далее по восходящей.
У других этого может и не быть.

Шокирован да ну? А на моём двухъядерном HC вообще не занимает больше 3% процессорного времени. И это с Connection:Close... И то, это в основном когда идёт подгрузка из инета, а так 0..1,5%. Или это мой двухъядерник круче?  Веселый
Восьмипроцессорник Xeon с 24Гб рамы (из них под винду - 4Гб). Разницы в скорости двух скриптов не замечено даже при запуске пяти ГЕ в один HC. Показывает язык
"Основные" (1.5-2% от каждого) тормоза - от собственно скроллинга ГЕ-глобуса и анизотропной фильтрации графики на максимуме (в каждом из ГЕ).
Добавлено: 23 Июня 2009, 14:24:59

Во время активной работы (вращение глобуса по методике Parasite) использование ЦПУ колеблется от 0 до 11% (в случае с Connection: close от 0 до 18%).
Это общее использование на всё - или использование именно HC?
В ГЕ само вращение глобуса кушает вполне вменяемо (особенно если кучу слоев включить и софт-рендер заюзать, оййй....).
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #108 : 23 июня 2009, 19:48:31 »

Цитировать
что-то убивает коннекты по окончании передачи контента(?)
Нет. Коннект один раз установился, и по этому соединению идет хоть тысяча запросов. Для проверки включал GE вращаться на 1ч: раз и навсегда установились 4 соединения, по которым прошли все несколько тысяч запросов.
Цитировать
Это общее использование на всё - или использование именно HC?
Только НС. Взгляд из Process Explorer. Гугл вращается со средней скоростью. Все берется из кэша.
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #109 : 23 июня 2009, 22:04:10 »

zed, Parasite
Похоже, догадался, в чем у вас дело, хоть и не хотите помогать... Подмигивающий
Вместо Connection: close впишите Connection: Keep-alive

Причина проблем скорее всего в том, что клиент настроен на использование протокола HTTP 1.0 и будет поддерживать постоянные соединения только при взятии из кэша НС (и то только если указать Connection: Keep-alive) . При скачивании из сети соединение будет рваться/возобновляться после каждого запроса.

Чтобы полностью перейти на постоянные соединения, надо в Свойствах обозревателя IE/Дополнительно поставить обе галки на использовании HTTP 1.1
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #110 : 23 июня 2009, 22:37:17 »

Вместо Connection: close впишите Connection: Keep-alive
Так я ж вроде 2 страницы назад сказал, что глючит не от того или другого конкретно, а от отсутствия прямого указания вообще. Keep-Alive тоже должно работать. Наверное (в связке с HC не проверял - Close вполне решило проблему на раз, дальше не рыл).

в Свойствах обозревателя IE/Дополнительно поставить обе галки на использовании HTTP 1.1
Так стоят-ссс, еще со времен настройки сети в винде. Правда, дело осложняется тем что у меня винда не нативна на машине, а в песочнице. Впрочем, голый-то ГЕ - прекрасно работает.
Попробую поиграться в обе стороны с настройками, и поставить парочку ГЕ на ночь для теста.

Но вот сама идея менять что-то в системных настройках ради работоспособности отдельно взятого скрипта мне как-то не очень нравится. Ведь в любом случае будут юзеры, не разувшие глаза и не сделавшие этого\не разобравшиеся в написанном, и вопящие о глюках. Тысячи их. Грустный Имхо, лучше бы таки ограничиться именно скриптом, на крайний случай - прихватить и HC, но имхо не далее. Зато всё будет подконтрольно разработчику, и только ему. Улыбка Решать, разумеется, не мне.

Господа, а как насчет этого поста - http://handycache.ru/component/option,com_smf/Itemid,10/topic,2364.msg18977/#msg18977 ? У кого-нибудь есть идеи?
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #111 : 23 июня 2009, 23:17:17 »

Чтобы полностью перейти на постоянные соединения, надо в Свойствах обозревателя IE/Дополнительно поставить обе галки на использовании HTTP 1.1
У меня галка "Использовать HTTP 1.1" стояла, а вот "Использовать HTTP 1.1 через прокси-соединения" - нет. Включение этой галки решило вопрос клина гугла. Убрал из скрипта Connection:Close - полёт нормальный.

Михаил, респект! Таки докапался в чём сабака зарыта Улыбка

P.S. Только что поставил на виртуалку чистую винду (не ту сборку что у меня в системе, а другую), так вот, там ситуация с Connection:Close повторилась один в один. Т.е. пока не поставил галку "Использовать HTTP 1.1 через прокси-соединения" по-умолчанию настроенная система, работать со скриптом отказывалась, что не есть хорошо.  Согласен с Parasite в том, что " лучше бы таки ограничиться именно скриптом... но не далее".
« Последнее редактирование: 23 июня 2009, 23:27:33 от zed » Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #112 : 23 июня 2009, 23:34:48 »

Цитировать
Но вот сама идея менять что-то в системных настройках ради работоспособности отдельно взятого скрипта мне как-то не очень нравится.
Не обязательно менять системные настройки. Пишется Connection: Keep-alive в скрипте (со следующей сборки так и будет делаться), и скрипт работает при любых настройках. Только при настройках HTTP1.1 работает эффективней.
Цитировать
У кого-нибудь есть идеи?
Скриптом такое проделать можно. А в чем замысел?
Сообщить модератору   Записан
zed
Постоялец
***

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

Сообщений: 141


« Ответ #113 : 23 июня 2009, 23:48:53 »

Не обязательно менять системные настройки. Пишется Connection: Keep-alive в скрипте (со следующей сборки так и будет делаться), и скрипт работает при любых настройках. Только при настройках HTTP1.1 работает эффективней.
Ага, а в шапку скрипту инфу о том, как сделать его наиболее эффективным Подмигивающий
Цитировать
У кого-нибудь есть идеи?
Скриптом такое проделать можно. А в чем замысел?
Замысел в том, чтобы не затирался dbRoot, хотелось бы, знаете ли, оставить его "на память", авось когда и пригодится. Коллекция дбрутов будет доступна тут.
А можно скриптом добавлять к имени номер не по порядку, а тот, что записан в седьмом байте файла? И не плохо бы, рядом со вновь скачанным дбрутом ложить текстовичёк с датой из заголовка Last-Modified (или к имени самого дбрута добавлять эту инфу). Для статистики, так сказать.

« Последнее редактирование: 23 июня 2009, 23:57:49 от zed » Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #114 : 24 июня 2009, 00:06:03 »

Цитировать
Замысел в том, чтобы не затирался dbRoot, хотелось бы, знаете ли, оставить его "на память", авось когда и пригодится.
Это не замысел, это как раз просьба, что и была высказана в том посте. А для чего так делать? Что это дает для целей кэширования или еще для каких?
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #115 : 24 июня 2009, 07:58:31 »

Не обязательно менять системные настройки. Пишется Connection: Keep-alive в скрипте (со следующей сборки так и будет делаться), и скрипт работает при любых настройках.
Так в этом же и был цимус: принудительно указывать в скрипте состояние коннекта. Close ли, Alive ли....лично мне более ближе Close (траху меньше на nix-системах - подвисшие сокеты не надо ручками отслеживать и давить). Улыбка

Докладаюсь:
1. Вставка в скрипт Connection: Keep-alive вместо Connection: Close: всё работает как и предсказывалось ранее, никакой визуальной разницы не видно в т.ч. и на файрволе (ну, кроме изменившейся этой строчки).
2. Пляска в разные стороны с двумя вышеуказанными галочками (в скрипте - Connection: Keep-alive): всё работает, никакой визуальной разницы не видно.
3. Пляска в разные стороны с двумя вышеуказанными галочками (в скрипте - Connection: Close): всё работает, никакой визуальной разницы не видно.
4. Пляска в разные стороны с двумя вышеуказанными галочками (в скрипте - оторвано указание про Connection вообще, то есть скрипт в его первоначальном виде от Михаила): клиент виснет за время 5...15 минут при ЛЮБОЙ комбинации галочек, как и указано в первом посте этой ветки.

Да, кстати - при Keep-Alive у меня не получается "Коннект один раз установился, и по этому соединению идет хоть тысяча запросов"© ни при какой комбинации настроек. Михаил, не могли бы дать свой дамп этой ситуации со сниффера? Погляжу, в чем разница...
Добавлено: 24 Июня 2009, 07:45:29

Цитировать
Замысел в том, чтобы не затирался dbRoot, хотелось бы, знаете ли, оставить его "на память", авось когда и пригодится.
Это не замысел, это как раз просьба
Совершенно верно. Улыбка

А для чего так делать? Что это дает для целей кэширования или еще для каких?
Это позволяет иметь "в коллекции" все дбруты согласно их версий. Сугубо для истории - в плане кэширования это не дает ровным счетом ничего, ну разве что задачи "взять дбрут версии N и подсунуть в кэш, чтобы клиенту отдавался именно он вместо текущего гуглевого".
В дбрутах помимо всего прочего описываются параметры доступных для клиента слоев, где каждый слой может иметь кучу условий для показа в разных версиях ГЕ, да и устаревшие версии клиента хотят как правило дбрут не выше определенной версии оного (например, для третьего это дбрут где-то 134...150 версии, тогда как сейчас на гугле 204я версия) - а в противном случае старичку рвет крышу....

Короче, эту фичу с дбрутом очень желательно бы иметь. Улыбка
Добавлено: 24 Июня 2009, 07:55:18

Цитировать
Попытка закэшировать авторизацию?
Да. Это все закомментировано.
Если будете использовать ГЕ.ЛОКАЛ - то можете раскомментировать.
ГЕ.ЛОКАЛ прекраснейше жрет кэшированные ответы авторизации гугля, чем сама необходимость логина на сервера Гугля отпадает и ГЕ становится полностью локальным и при том - всё еще работоспособным. Улыбка
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #116 : 25 июня 2009, 11:47:53 »

Так в этом же и был цимус: принудительно указывать в скрипте состояние коннекта. Close ли, Alive ли....
Не в этом. НС должен был закрыть соединение, но этого не делал. Похоже, ошибка НС.
mai62
Запрос HTTP 1.0. Скрипт формирует ответ без заголовка Connection (Proxy-Connection). При таком раскладе НС, похоже, не закрывает соединение после передачи ответа, и оно подвисает.
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #117 : 25 июня 2009, 13:05:54 »

Не в этом. НС должен был закрыть соединение, но этого не делал. Похоже, ошибка НС.
Не знаю, Вам виднее. Улыбка

Скажу лишь, что у меня сабж в 100% повторяем и без HC
(клиент->(апач+перлскрипт)->сервер ГЕ, получаем висняки сокетов если Перлом принудительно не формировать Сonection:Close при отдаче контента в клиент, причем висняк будет бесконечным и очень скоро настает переполнение очереди.
Solaris 10, Апач 1.3.35 (емнимс). Proxy-Connection тоже не формирую.
« Последнее редактирование: 25 июня 2009, 13:12:50 от Parasite » Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #118 : 25 июня 2009, 15:33:16 »

Михаил
Цитировать
Запрос HTTP 1.0. Скрипт формирует ответ без заголовка Connection (Proxy-Connection). При таком раскладе НС, похоже, не закрывает соединение после передачи ответа, и оно подвисает.
А если в запросе HTTP 1.0, а в ответе HTTP 1.1, то на кого ориентироваться? И что было в поле Connection в запросе? Не проще в ответе явно написать?
Сообщить модератору   Записан
Parasite
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 66



« Ответ #119 : 25 июня 2009, 16:25:05 »

И что было в поле Connection в запросе? Не проще в ответе явно написать?
Клиент всегда просит 1.1\KeepAlive.
Сообщить модератору   Записан
Страниц: 1 ... 4 5 [6] 7 8 9   Вверх
  Отправить эту тему    Печать  

 
Перейти в: