проблемы с производительностью, которые следует учитывать при добавлении cookie-файлов для 100K пользователей? - PullRequest
3 голосов
/ 31 января 2012

Я отслеживаю клики по сайту, в основном использую jQuery для запуска событий кликов на якорях и кнопках, которые добавляют / обновляют cookie, которые я буду регистрировать во внутренних базах данных, когда пользователь заходит на страницу ошибки

Это будет означать добавление некоторой логики jQuery на главной странице (то есть на каждой странице), которая будет получать и обновлять cookie, наряду с подключением событий щелчка jquery к большинству объектов на сайте.

сайт видит около 100 000 уникальных посетителей в день и уже загружен базой данных

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

Я ценю любое руководство, которое может дать каждый.

Ответы [ 3 ]

2 голосов
/ 31 января 2012

Повышение производительности загрузки страницы при добавлении файла cookie в запрос будет зависеть от текущего размера запроса и количества запросов, направленных в домен с новым файлом cookie для каждой загрузки страницы. Файл cookie будет добавляться к каждому запросу (включая изображения, css, js и т. Д.), Поэтому в зависимости от вашего сценария это может быть большое или небольшое влияние.

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

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

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

2 голосов
/ 31 января 2012

Регистрация чего-либо в cookie-файлах не очень хорошая идея, поскольку cookie-файлы имеют ограничение длины текста (4 КБ, если я не забыл).Поэтому, если вы хотите регистрировать некоторые действия пользователя, вы можете попытаться использовать ajax для отправки запроса на сервер и попытаться применить какую-либо систему ведения журнала с высокой производительностью на стороне сервера.

0 голосов
/ 31 января 2012

вы могли бы провести нагрузочное тестирование. Visual Studio имеет хорошую реализацию

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...