2009-11-09 1 views
8

Я пробовал искать это, но это довольно сложно выразить словами.Сайт замедляется для отдельных пользователей, но они могут переключать браузеры?

В принципе, наш сайт будет отлично работать для большинства пользователей без каких-либо проблем. Иногда, хотя те из нас, кто использует сайт довольно сильно весь день, внезапно полностью увязнут. Все просто вращается. Сам сайт по-прежнему прекрасен - все остальные могут добираться до него, но отдельный пользователь застревает. На самом деле перезапуск браузера полностью не устраняет проблему, даже если вы явно очистите свои файлы cookie.

Вы можете, однако, открыть сайт просто отлично, переключившись на другой браузер. Если вы увязли в Firefox, вы можете открыть его и продолжить работу в IE. Это может произойти в обоих направлениях (вы можете заглушить IE и перейти на работу firefox).

Это вообще имеет смысл? Это похоже на то, что что-то ломается с сеансом, но я не знаю, что вызвало бы это, и сеанс должен был перезагрузиться, перезапустив браузер и очистив файлы cookie и многое другое.

Любые идеи?

[Редактирование, чтобы уточнить, извините, должно было включить это для начала] Сервер - это очень простой стек LAMP на RedHat с Apache 2.2.3, PHP 5.2.11, MySQL 5.0.45 (мы рассмотрели обновление MySQL, но я не думаю, что это проблема здесь). Это стандартная конфигурация для Rackspace, поэтому я не думаю, что мы делаем что-то экзотическое, кроме Zend Optimizer.

Мы используем много javascript/jquery, но все это довольно стандартный материал, и я не ожидал, что утечка памяти не повлияет на другой браузер, хотя я могу ошибаться.

Кроме того, процессор и память нашего сервера никогда не нарушали 25% -ный запас даже в шипах, и шипы, похоже, не коррелируют с этим явлением.

+0

У меня такое же явление на сайтах двух клиентов, что я безуспешно пытался разобраться в течение нескольких месяцев. Очень интересно посмотреть, появится ли что-то интересное. +1 –

+0

Это может помочь, если вы сообщите людям, что такое ваш сервер, какие службы он запускает и т. Д. –

+3

Использует ли ваш сайт код на стороне клиента? Возможно, есть утечка памяти. – dnagirl

ответ

2

Звучит так, как будто у вас есть какая-то проблема с блокировкой сеанса. Вы заявляете, что даже удаление файлов cookie не помогает, что делает блокировки сеанса менее правдоподобными, но у меня нет каких-либо подробностей о вашей реализации, так что это все еще возможно.

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

  1. Есть ли у вас сеанс открыт при потоковой передаче контента и при попытке чтения или записи сеанса на другом запросе?

  2. Вы внедрили свои собственные сеансы?

Если вы отвечаете на вопрос «да» или, возможно, на вопрос 1, возможно, это корень вашей проблемы.

Если вы отвечаете «да» на вопрос два, сохраняется ли проблема, если вы переключите управление сеансом на стандартный php? У вас может быть ошибка при обработке сеанса.

+0

Да, вполне возможно, что с несколькими вкладками, открытыми в тот же сеанс, мы пишем на сеанс, одновременно читая его. Я расскажу своим ребятам, чтобы использовать одну вкладку только некоторое время, чтобы узнать, доставит ли она нас где-нибудь. Есть ли способ обойти это? Я использую стандартные сессии PHP. –

+0

Это не просто несколько вкладок, которые вызывают множественные открытые запросы, просто загружая одновременно два или несколько ресурсов, вкладки сами по себе вряд ли будут делать это, если только вы не делаете какой-либо AJAX. – Kris

+0

Есть несколько страниц, которые используют много аякса. Это не редкость для людей в команде, чтобы открыть одну или несколько из этих страниц на нескольких вкладках одновременно. Прямо сейчас сеансовая блокировка определенно там, где я опишу этот. –

1

G'day,

Это звучит, как вы сохраняющиеся какой-то информации на стороне сервера на основе каждого сеанса.

Сохраняете ли вы идентификаторы сеанса или идентификаторы пользователя на сервере?Может быть, добавить все больше и больше информации к некоторым сохраненным данным с каждым последующим входящим запросом?

Возможно, также задействована строка входящего User Agent, поэтому работает смена типов браузеров, где просто перезапуск сеанса в том же типе браузера не работает?

Вы видели остановку и перезапуск сеанса по временной границе, например. час или полночь, когда использование одного и того же браузера также сбрасывает проблему? Возможно, попробуйте подделать строку UA, чтобы увидеть, также ли эта проблема сбрасывается.

BTW Какие модули Apache вы используете на своем сервере? Также 2.2.3 - это довольно старая версия, которую вы рассматривали при обновлении?

+0

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

+0

@epalla, приветствия. мне действительно интересно, что то, что вы сохраняете, просто становится настолько большим с течением времени. Позвольте мне знать, что происходит. BTW Это то, что я делаю для * основного * веб-сайта. (-: Удачи. –

+0

У меня еще не было возможности проверить это полностью, но все текущие файлы сеанса, которые я вижу, имеют размер менее 1 КБ (кроме двух сеансов phpMyAdmin для меня, которые взлетели на колоссальные 13 и 15k соответственно). Наша сборка мусора не является чем-то сумасшедшим, поэтому я ожидаю, что если это то, что вызвало наши тайм-ауты сегодня утром, у меня все еще было бы несколько аномально больших сессий. Я все еще не понимаю, почему перезапуск браузера не разрешит этот isue? –

0

Похоже, что это Memory Leaks, созданный вашим javascript. Проверьте список процессов и посмотрите, сколько раз в браузере памяти загружается и через полчаса просматривается и перезагружается ваш сайт. Если потребление памяти значительно больше, чем предполагается, это означает, что вы должны просмотреть свой код javascript для любых невозвращенных методов, нераскрытых циклов и т. Д. Обычно это помогает.

+0

Не было бы полного перезапуска браузера очистить это? Я, по общему признанию, не понимаю механику утечки памяти. –

+0

Да после перезапуска памяти браузера очищается. Например, когда я Firefox, он потребляет около 70 Мб моей памяти, после нескольких часов работы на одном веб-сайте, с постоянными обновлениями и событиями на странице, браузер потребляет более 300 МБ ОЗУ, это самый распространенный признак утечки памяти в приложении. Это очень сложно исправить, когда вы используете мини-библиотеки от третьих лиц. – Nazariy

+0

, но это означает, что перезапуск браузера устранит проблему, но это не так. –

0

Интересно, что никто не предлагал рекламу в качестве причины (Ответ Назари мог быть принят тем, кто, хотя).

В основном проверьте рекламу, показанную на вашем сайте, в этом есть много дерьма, и они всегда основаны на распознавании пользователей, что объясняет, почему перезапуск браузера не помогает.

+0

Мы используем аналитику, но у нас нет других рекламных объявлений на сайте. –

0

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

  • Количество JS файлов, загруженных (она включает в себя те, которые вы получаете с помощью запросов сценария) (Вы, вероятно, следует удалить скрипте теги, созданные при использовании этого метода)
  • Количество файлов CSS (например, на IE, я думаю, существует жесткий предел 31)
  • Иногда браузер может блокировать запрос разрешения DNS
  • Некоторые браузеры имеют ограничения на количество запросов в доменах (IE имеет 2), поэтому, если запрос не выполнен, всем остальным в этом домене придется ждать

Все это, конечно же, не объясняет, почему он продолжает висит после перезапуска одного и того же браузера - хотя вы не упомянули об очистке своего кеша, так что, возможно, есть неудавшийся запрос, который находится в кеше браузера или какой-то промежуточный кеш или прокси-сервер, поэтому вы можете попробовать, если это произойдет, если вы полностью отключите кеширование в своем браузере. (На Firefox это можно легко сделать с помощью панели инструментов Web Developer, например.)

Вы также должны увидеть, какие запросы зависают, используйте Fiddler и Firebug, чтобы увидеть это.

0

Утечки памяти, вызванные javascript, влияют на браузер, так как это все клиентская сторона. Сжатие Jquery или мин, вы не можете быть уверены, где проблема, и это может быть причиной проблемы или скриптом, использующим его.

Смежные вопросы