Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Load Stress / 4 сообщений из 4, страница 1 из 1
17.04.2006, 11:32
    #33670532
Load Stress
Кто нить замерял с помощью различный Load Stress тестов. производительность связки

DataStorage (MSSQL) -> Application Server (.Net Rmoting v1.1) -> ASP.Net Client (IIS 5.0)

код выполняемый на клиенте:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 
private string SQLExpr = "SELECT ECO_ID, ShortName FROM Contractor WHERE ContractorTypeId = \'{501F1642-B6AB-11D6-A9A1-0050DACDB89A}\'";
		protected System.Web.UI.WebControls.DataGrid dataGrid1;

		private void Page_Load(object sender, System.EventArgs e)
		{
                        TcpClientChannel ch = new TcpClientChannel();
                        if (System.Array.IndexOf(ChannelServices.RegisteredChannels, ch) >=  0 )
                        {
	                        ChannelServices.RegisterChannel(ch);
                        }

                        ITestRemoting test_rem;
                        test_rem = (Activator.GetObject(typeof(ITestRemoting) ,"tcp://w8-kovalevskiy:5001/TestRemotable") as ITestRemoting);

                        dataGrid1.DataSource = test_rem.ExecSQL(SQLExpr);

                        base.DataBind();
		}



таблица Contractor 1500 записей.

просто у меня получились не очень утишительные результаты.

При 800та одновременных запросах:
Number of hits: 9177
Requests per Second: 152.90

Result Codes
Code Description Count
==============================================================200 OK 6275
503 Service Unavailable 2902


503 ошибок ~ 40%

использовал WebStress от Microsoft ... .

но такая производительность никуда не годится ... .
...
Рейтинг: 0 / 0
18.04.2006, 02:17
    #33672384
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Stress
У меня 250-300 запросов к aspx/asmx/remoting в секунду выполняются без проблем, при довольно сложной структуре данных. Это в реальной работе, без стресса, на сравнительно дохлом железе и сравнительно большой базе.
Если не устраивает производительность, надо искать узкое место и расширять :) А совершенству как известно, нет предела.

Для начала надо разобраться с ошибками. Видимо, очередь запросов переполнилась. Это можно покрутить в machine.config и web.config.
Потом проверить и сравнить время, которое тратится на обработку http запроса, ожидание результатов remoting вызова на веб сервере, время работы ExecSql на аппсервере и ожидание SQL. И последовательно оптимизнуть это дело.

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

.Net позволяет как быстро слепить дуру так и сваять высокопроизводительное приложение. Второе требует больше времени и опыта, да и далеко не во всех случаях нужна заоптимизированность (неуж-то впрямь предполагается получать 800 одновременных запросов?).
...
Рейтинг: 0 / 0
18.04.2006, 12:08
    #33673117
Galant
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Stress
авторВ общем случае, не должно быть запросов, которые однозначно генерят обращение к SQL

А что значит однозначно?
...
Рейтинг: 0 / 0
18.04.2006, 12:28
    #33673223
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Load Stress
Galant авторВ общем случае, не должно быть запросов, которые однозначно генерят обращение к SQL

А что значит однозначно?
Однозначно - в смысле, при каждом обращении к странице, при любом раскладе.
В приведенном примере мы к базе обращаемся каждый раз. А надо бы аппсерверу переслать параметры, и он сам должен выбрать данные (используя ХП, чтоб не тратиться на подготовку стейтмента), запихнуть себе в кеш и выдать вебу. В следующий раз он возьмет данные из кеша, и все пробежит заметно бодрее.
Нам что надо от сиквела? Прочитать данные, проверить наличие данных, записать данные. Все остальное так или иначе сводится к этому. СУБД может что-то посчитать, но, в итоге, результат - это тоже данные, которые можно хранить и кешировать чтоб сэкономить время. Это все более муторно, конечно, но любой вызов БД - это дорогое удовольствие, безотносительно к тому, что за СУБД используется, и лучше, по возможности, этого избегать.
А со временем оказывается что одного сервера мало, и приложение должно масштабироваться. Вот тут сказка и начинается действительно по-взрослому :)
Но, повторюсь, далеко не всегда нужна такая оптимизация. Если у нас 10 интранет пользователей, и больше 20 не планируется, можно на многое забить и сделать быстрее, а сэкономленное время потратить на другой проект.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Load Stress / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]