Кто-то может объяснить, что эти ApacheBench заканчивается средний?

В XML-файлах проекта:

Консольные приложения содержат:

<OutputType>Exe</OutputType>

приложения WinForms содержат:

<OutputType>WinExe</OutputType>

Библиотека (.dll) проекты содержите:

<OutputType>Library</OutputType>

и НЕ содержат

<ProjectTypeGuids>

, ASP.NET и проекты WCF содержат:

<ProjectTypeGuids>{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>

GUID делают что-то для определения точно, какой проект это. Те выше были взяты из приложения ASP.NET. Они существуют в проектах WCF также, и зеркально отражающий вокруг GUID может одурачить Studio Виса в изменение типа проекта, когда Вы открываете его.

16
задан Pure.Krome 13 September 2009 в 13:19
поделиться

2 ответа

какова причина добавления дополнительных одновременный? Например, если у меня 1000 просмотров на 1 одновременном, чем это отличается до 500 на 2 одновременных? Это для проверки если есть код, который блокирует другие запросов?

Это немного об этом, да: ваше приложение, вероятно, делает вещи, в которых параллелизм может вызвать проблемы.

Пара примеров:

  • страница пытается получить доступ к файлу - блокируя его в процесс ; это означает, что если другая страница должна получить доступ к тому же файлу, ей придется подождать, пока первая страница закончит работать с ней.
  • То же самое и для доступа к базе данных: если одна страница выполняет запись в базу данных, есть некоторые своего рода блокирующие механизмы (будь то таблицы, строки или что-то еще, в зависимости от вашей СУБД)

Тестирование с параллелизмом, равным единице, в порядке ... Пока на вашем веб-сайте больше не будет чем один пользователь одновременно; что совершенно нереально, я надеюсь на вас.


Вы должны подумать о том, сколько пользователей будет одновременно находиться на сайте, когда он находится в рабочем состоянии, и настроить параллелизм; просто помните, что 5 пользователей одновременно на вашем сайте не означает, что вы должны тестировать с параллелизмом 5 с ab:

  • реальные пользователи будут ждать пару секунд между каждым запросом (время читать страницу, нажмите по ссылке, ...)
  • ab вообще не ждет: каждый раз, когда страница загружается (т.е. когда запрос завершен), он запускает другой запрос!


Также две другие вещи:

  • ab тестирует только одну страницу - реальные пользователи будут перемещаться по всему сайту, что может вызвать проблемы с параллелизмом, которых не было бы при тестировании только одной страницы
  • ab загружает только одну страницу: он не запрашивает внешние ресурсы (подумайте CSS, изображения, JS, ...); Это означает, что у вас будет много других запросов, даже если они не будут действительно дорогостоящими, когда ваш сайт находится в разработке.

В качестве примечания: вы можете взглянуть на другие инструменты, который может выполнять гораздо более полные тесты, такие как siege , Jmeter или OpenSTA : ab действительно хорош, когда вы хотите измерить, оптимизирует ли что-то, что вы сделали, страница или нет; но если вы хотите смоделировать «реальное» использование вашего сайта, они гораздо более адаптированы.

17
ответ дан 30 November 2019 в 21:37
поделиться

Да, если вы хотите знать, сколько запросов в секунду может обслуживать ваш сайт, посмотрите строку «Запросы в секунду». В вашем случае это действительно довольно просто, поскольку вы запускали ab с параллелизмом 1. Каждый запрос в среднем занимал всего 2,371 мс. 421 из них, один за другим, занимают 1 секунду.

Вам действительно стоит немного поиграть с параллелизмом, чтобы точно измерить пропускную способность вашего сайта. До определенной степени параллелизма можно ожидать увеличения пропускной способности, поскольку несколько запросов обрабатываются IIS параллельно. Например, если ваш сервер имеет несколько процессоров / ядер. Также, если страница полагается на внешний ввод-вывод (служба среднего уровня или вызовы БД), процессор может работать с одним запросом, а другой ожидает завершения ввода-вывода. В определенный момент количество запросов в секунду снизится с увеличением параллелизма, и вы увидите увеличение задержки. Увеличьте параллелизм еще больше, и вы увидите, что ваша пропускная способность (запросов / сек) уменьшится, поскольку серверу приходится выделять больше ресурсов для обработки всех этих одновременных запросов.

При этом большинство ваших запросов возвращаются примерно через 2 мс. Это чертовски быстро, поэтому я предполагаю, что с точки зрения вызовов БД или среднего уровня происходит не так много, и ваша система, вероятно, перегружена на процессор, когда выполняется тест (или что-то не так, и очень быстро выходит из строя. вы уверены, что ab получает страницу ответа, на которую вы рассчитываете? Т.е. это страница, размер которой, по вашему мнению, вы тестируете, составляет 1204 байта?). Это поднимает еще один момент: ab сам по себе тоже потребляет процессор, особенно после того, как вы увеличите параллелизм. Итак, вы хотите запустить ab на другом компьютере.

Кроме того, если ваш сайт будет делать внешние вызовы службам среднего уровня или базам данных, вы хотите настроить свой machine.config для оптимизации количества потоков, выделяемых IIS: http: //support.microsoft.com/default.aspx?scid=kb;en-us;821268

И небольшая мелочь: статистика затраченного времени ведется с шагом ~ 16 мс, поскольку это, по-видимому, является степенью детализации используемый таймер. Т.е. 80% ваших ответов не занимали 0 мс, они занимали некоторое время <16 мс.

8
ответ дан 30 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: