Перейти к содержимому

Фотография

Пропускная способность, help!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 25 июля 2014 - 03:47

Здравствуйте!

Мне требуется протестировать сервер, отправляя 600 запросов в секунду.

Но сколько бы я threads не выставляла, transactions в cекунду в среднем у меня не более 160.

Возможно кто-нибудь знает, в какое ограничение я упираюсь? и как это исправить?


  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 25 июля 2014 - 09:22

Штатные оракулы в отпуске.

Описывайте точнее конфигурацию  всей системы, чем и как нагружаете, какие параметры мониторите, графики.


  • 0

#3 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 25 июля 2014 - 10:04

Штатные оракулы в отпуске.

Описывайте точнее конфигурацию  всей системы, чем и как нагружаете, какие параметры мониторите, графики.

 

1)Для генерации нагрузки я использую плагин jp@gc.

Запускаю 500/1000 threads.

Для мониторинга использую график плагина  jp@gc - Transactions per Second.

+Aggregate Graph- cмотрю среднее время отклика и среднюю пропускную способность.

 

2)Сами запросы написаны на java( beanshell sampler)

простые запросы- устанавливается соединение и скачивается или удаляется файл с сервера

 

3)Система, на которой проводится нагрузочное тестирование:

Процессор: Intel core i5

Оперативная память: 6 ГБ


  • 0

#4 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 25 июля 2014 - 12:32

 

Штатные оракулы в отпуске.

Описывайте точнее конфигурацию  всей системы, чем и как нагружаете, какие параметры мониторите, графики.

 

1)Для генерации нагрузки я использую плагин jp@gc.

Запускаю 500/1000 threads.

Для мониторинга использую график плагина  jp@gc - Transactions per Second.

+Aggregate Graph- cмотрю среднее время отклика и среднюю пропускную способность.

 

2)Сами запросы написаны на java( beanshell sampler)

простые запросы- устанавливается соединение и скачивается или удаляется файл с сервера

 

3)Система, на которой проводится нагрузочное тестирование:

Процессор: Intel core i5

Оперативная память: 6 ГБ

 

При том аппаратных ресурсов точно хватает.Похоже что где то что-то неправильно настроено в самом jmeter.


  • 0

#5 ShS

ShS

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • Город:Россия, Москва

Отправлено 25 июля 2014 - 13:30

А что показывает  jp@gc - Hits per Second ?

 

http://softqa.ru/blo...ormance/18.html


  • 0

#6 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 25 июля 2014 - 13:44

А что показывает  jp@gc - Hits per Second ?

 

http://softqa.ru/blo...ormance/18.html

Показывает то же самое, что и график transactions per seconds.( 160 в секунду максимум)

в общем не добится мне почему-то в jmeter trans per seconds больше 160 в секунду.

 

при том:

1)ресурсов хватает

2)пропускной способности канала хватает( 10% только используется)

3)сервер точно может обработать больше транзакций

4)код на java для запросов тривиальный 


  • 0

#7 APC

APC

    Опытный участник

  • Members
  • PipPipPipPip
  • 293 сообщений
  • ФИО:Похилько Андрей Федорович
  • Город:Москва


Отправлено 25 июля 2014 - 14:47

3)сервер точно может обработать больше транзакций

 

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

 

UPD: и кстати да, Beanshell в жметре это жутко расходная штука, а также имеющая блокировки внутри себя. Подумайте над тем, как бы от него избавиться, или минимизировать его начинку.


  • 0

#8 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 25 июля 2014 - 15:57

 

3)сервер точно может обработать больше транзакций

 

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

 

UPD: и кстати да, Beanshell в жметре это жутко расходная штука, а также имеющая блокировки внутри себя. Подумайте над тем, как бы от него избавиться, или минимизировать его начинку.

 

 

А не подскажете, какие альтернативы Beanshell есть? при условии,что для написания запросов обязательно нужно использовать java библиотеку?

И что за блокировки внутри себя?

 

Вот один из запросов, рабочий. Возможно проблема в коде, он вызывает какие-то блокировки? 

HostConfiguration config=new HostConfiguration();
config.setHost("host");
MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setMaxConnectionsPerHost(config, 1);
HttpClient client = new HttpClient(manager);
client.setHostConfiguration(config);
Credentials creds = new UsernamePasswordCredentials("login","pass");
client.getState().setCredentials(AuthScope.ANY, creds);
MoveMethod move = new MoveMethod("param");
client.executeMethod(move);
manager.shotdown();

  • 0

#9 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 26 июля 2014 - 10:12

Попробуйте плавный разгон нагрузки сделать, посмотрите где выйдет на полку, прикрутите мониторинг ресурсов как нагружаемой машины, так и нагружающей, память, диски, процессор, сеть. Посмотрите времена ответа тестируемой системы, если 1000 потоков получает ответы по 10 секунд, то пропускная способность будет 100 хитов в секунду.

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


  • 0

#10 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 27 июля 2014 - 18:03

Попробуйте плавный разгон нагрузки сделать, посмотрите где выйдет на полку, прикрутите мониторинг ресурсов как нагружаемой машины, так и нагружающей, память, диски, процессор, сеть. Посмотрите времена ответа тестируемой системы, если 1000 потоков получает ответы по 10 секунд, то пропускная способность будет 100 хитов в секунду.

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

Проблема еще в том, что сервер удален и находится в США. соответственно время отклика выше.

например, 1 запрос у меня выполняется за 1 секунду, это точно правильные данные.

но 500 запросов выполняются за 9 секунд. Меня смущает немного это значение. На сколько оно достоверно?Возможно ли, что jmeter врет.

В таблице он пишет,что 500 запросов отправил одновременно.


  • 0

#11 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 28 июля 2014 - 09:53

Проблема еще в том, что сервер удален и находится в США. соответственно время отклика выше.

 

 

 

например, 1 запрос у меня выполняется за 1 секунду, это точно правильные данные.

но 500 запросов выполняются за 9 секунд. Меня смущает немного это значение. На сколько оно достоверно?Возможно ли, что jmeter врет.

В таблице он пишет,что 500 запросов отправил одновременно.

 

А вот это плохо, достоверность результата получается не айс.

Сколько времени выполняется запрос и сколько лаг сети?

Может ли ваше оборудование "последней мили" переварить выдаваемую вами нагрузку?

Насколько я помню, не рекомендуется пытаться выдать залпом  много запросов, результат труднопредсказуем, если хотите точно узнать как выстреливает ваша нагрузка - снимите дамп сети, желательно каким-нибудь промежуточным устройством (роутер/бридж с юниксом на борту, машинка с ваиршарком + span-порт на циске), и посмотрите в ваиршарке когда и как шли реальные запросы.

 

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


  • 0

#12 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 28 июля 2014 - 12:03

 

Проблема еще в том, что сервер удален и находится в США. соответственно время отклика выше.

 

 

 

например, 1 запрос у меня выполняется за 1 секунду, это точно правильные данные.

но 500 запросов выполняются за 9 секунд. Меня смущает немного это значение. На сколько оно достоверно?Возможно ли, что jmeter врет.

В таблице он пишет,что 500 запросов отправил одновременно.

 

А вот это плохо, достоверность результата получается не айс.

Сколько времени выполняется запрос и сколько лаг сети?

Может ли ваше оборудование "последней мили" переварить выдаваемую вами нагрузку?

Насколько я помню, не рекомендуется пытаться выдать залпом  много запросов, результат труднопредсказуем, если хотите точно узнать как выстреливает ваша нагрузка - снимите дамп сети, желательно каким-нибудь промежуточным устройством (роутер/бридж с юниксом на борту, машинка с ваиршарком + span-порт на циске), и посмотрите в ваиршарке когда и как шли реальные запросы.

 

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

 

1 запрос выполняется 860 ms( лаг тоже 860, если верить jmeter).

при том я даже избавилась от beanshell и jsr223 и отправила запрос, используя http sampler.

 

Меня смущает, что этот же запрос, написанный на javascript из IE выполняется за 120 ms.

а в Jmeter 800 ms.

Конечно, я понимаю, что в Jmeter дольше выполняются запросы. но не на сколько же.

Можно ли как-нибудь заставить jmeter быстрее работать?


  • 0

#13 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 28 июля 2014 - 12:57

одиночный запрос jmeter выполняет так-же за 800мс?

снимите дамп сети, посмотрите на реальные значения, исходя из этого делайте выводы.

Собрать стенд для нагрузки - нетривиальная задача, я в своем окружении неделю убил, пока отловил все подводные камни


  • 0

#14 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 28 июля 2014 - 13:11

одиночный запрос jmeter выполняет так-же за 800мс?

снимите дамп сети, посмотрите на реальные значения, исходя из этого делайте выводы.

Собрать стенд для нагрузки - нетривиальная задача, я в своем окружении неделю убил, пока отловил все подводные камни

Попробую, спс огромное.

 

Да, одиночный запрос в Jmeter выполняется 800 мс.

Путем изменения на httpclient 3.1 оно уменьшилось до 600 мс. Но подобынй запрос из браузера выполняется за 120 мс.

Видимо что-то еще в jmeter нужно настроить. 

И еще момент. у меня соединения с сервером через ssl. может быть какие-то параметры вносят дополнительные задержки?


  • 0

#15 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 30 июля 2014 - 11:59

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

Посмотрите динамику количества запросов в секунду при разгоне от 1 потока до 500


  • 0

#16 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 07 августа 2014 - 11:01

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

Посмотрите динамику количества запросов в секунду при разгоне от 1 потока до 500

Так. частично я решила проблему:

1)включила опцию use shared ssl context

2)стала использовать rest sampler (плагин jp@gc)

теперь при 100 threads у меня стабильно пропускная способность 540 tran/sec.

 

но появилась новая проблема. 

при threads =200 у меня время отклика вырастает 2 раза и пропускная способность не растет практически.

При этом на тестовом компьютере память и процессор загружены на 40%, на сервере тоже все в порядке с ресурсами.

Такое чувство, что я напоролась на какое-то ограничение.


  • 0

#17 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 14 августа 2014 - 14:22

на нагружаемом сервере ОС какая?

 

Покажите графики роста пропускной способности и времени ответа от количества потоков.


  • 0

#18 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 18 августа 2014 - 08:22

на нагружаемом сервере ОС какая?

 

Покажите графики роста пропускной способности и времени ответа от количества потоков.

Линукс. Но сокетов точно хватает.

 

И еще такой вопрос.

Для минимизации потребления ресурсов jmeter я:

1)выключила все listeners

2)использую версию для командной строки

3)для запросов использую jp@gc плагин

4)использую cache и shared context

5)данные загружаю из csv файла

Что еще можно сделать для минимизации потребления ресурсов?(процессора, памяти)

Все статьи подобной тематики в интернете я читала. Но может быть можно еще как-то оптимизировать?

Прикрепленные файлы


  • 0

#19 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 18 августа 2014 - 12:13

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

от 200 до 230 потоков очень показательная картинка: время запросов упало, количество запросов в секунду выросло. И остается только гадать, это в сети такой просвет был, или в сервере что-то ненадолго пролагалось


  • 0

#20 irinamir

irinamir

    Новый участник

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Ира

Отправлено 18 августа 2014 - 12:19

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

от 200 до 230 потоков очень показательная картинка: время запросов упало, количество запросов в секунду выросло. И остается только гадать, это в сети такой просвет был, или в сервере что-то ненадолго пролагалось

Скажите, а утилита seige много жрет ресурсов?


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных