Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
comet:load-testing [2017/07/16 16:33] levhav |
comet:load-testing [2018/02/24 18:42] anastation468 [Анализ результатов] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
<rst>RU::003-Нагрузочное тестирование::001-Сценарий тестирования</rst> | <rst>RU::003-Нагрузочное тестирование::001-Сценарий тестирования</rst> | ||
+ | <rst>Header: Сценарий тестирования</rst> | ||
- | ====== Нагрузочное тестирование ====== | + | ====== Нагрузочное тестирование с tsung ====== |
Для нагрузочного тестирования можно использовать программу tsung | Для нагрузочного тестирования можно использовать программу tsung | ||
Строка 53: | Строка 54: | ||
</tsung> | </tsung> | ||
</file> | </file> | ||
- | В нём указано что к localhost к порту 8087 надо подключатся по вебсокетам. И создавать по 2500 тысячи подключений каждую секунду до тех пор пока их в сумме не наберётся 64000. | + | В нём указано что к localhost к порту 8087 надо подключатся по вебсокетам. И создавать по 2500 тысячи подключений каждую секунду до тех пор, пока их в сумме не наберётся 64000. |
- | То есть этот сценарий просто создаёт тестовую нагрузку в 64000 пользователей онлайн. Тест синтетический и реальные 64000 будут нагружать сервер несколько по другому а не просто висеть онлайн, но это уже от приложения и предполагаемого сценария использования комет сервера можно составить свой сценарий тестирования который бы отражал ваш тип нагрузки на комет сервер. | + | То есть этот сценарий просто создаёт тестовую нагрузку в 64000 пользователей онлайн. Тест синтетический и реальные 64000 будут нагружать сервер несколько по другому, а не просто висеть онлайн, но это уже от приложения и предполагаемого сценария использования комет сервера можно составить свой сценарий тестирования, который бы отражал ваш тип нагрузки на комет сервер. |
===== Нагрузка более чем 64000 онлайн ===== | ===== Нагрузка более чем 64000 онлайн ===== | ||
- | Нагрузка в 64000 это максимум который позволит создать операционная система. Если хотите больше то надо тестировать один сервер с нескольких машин с tsung одновременно. TCP-соединение уникально определяется четверкой [source ip, source port, dest ip, dest port], таким образом с одной машины на 1 порт сервера можно создать не более 64 тыс одновременных соединений | + | Нагрузка в 64000 это максимум? который позволит создать операционная система. Если хотите больше, то надо тестировать один сервер с нескольких машин с tsung одновременно. TCP-соединение уникально определяется четверкой [source ip, source port, dest ip, dest port], таким образом с одной машины на 1 порт сервера можно создать не более 64 тыс одновременных соединений |
===== Запуск сервера ===== | ===== Запуск сервера ===== | ||
Строка 79: | Строка 80: | ||
backlog = 10000 | backlog = 10000 | ||
epoll_size = 100000 | epoll_size = 100000 | ||
- | thread_num = 12 ; количество потоков, делайте больше чем ядер на сервере так как сервер не lock-free | + | thread_num = 12 ; количество потоков, делайте больше, чем ядер на сервере так как сервер не lock-free |
benchmark = 1 ; Интервал между замерами нагрузки (0 = не замерять) | benchmark = 1 ; Интервал между замерами нагрузки (0 = не замерять) | ||
port = 8087 | port = 8087 | ||
uptimeTestInterval = 600 ; Интервал для проверок uptime у соединений (так же за одно выправляет значение счётчика пользователей онлайн) | uptimeTestInterval = 600 ; Интервал для проверок uptime у соединений (так же за одно выправляет значение счётчика пользователей онлайн) | ||
- | maxUptime = 0 ; Максимально значение uptime после которого коннект отключается. | + | maxUptime = 0 ; Максимально значение uptime, после которого коннект отключается. |
</code> | </code> | ||
- | А потом запустить сервер в консольном режиме чтоб видеть вывод статистики | + | А потом запустить сервер в консольном режиме, чтобы видеть вывод статистики |
<code bash> | <code bash> | ||
./cpp_comet | ./cpp_comet | ||
Строка 103: | Строка 104: | ||
В процессе тестирования вы можете наблюдать за загрузкой ОС на пример через программы htop или iotop | В процессе тестирования вы можете наблюдать за загрузкой ОС на пример через программы htop или iotop | ||
- | Проверить то что встроенный в комет сервер счётчик общего количества соединений онлайн показывает цифры близкие к правде можно командой: | + | Проверить то, что встроенный в комет сервер счётчик общего количества соединений онлайн показывает цифры близкие к правде можно командой: |
<code bash> | <code bash> | ||
ss -p | grep "cpp_comet" | wc -l | ss -p | grep "cpp_comet" | wc -l | ||
Строка 109: | Строка 110: | ||
Она подсчитает количество входящих соединений средствами операционной системы. | Она подсчитает количество входящих соединений средствами операционной системы. | ||
- | По окончании тестирования tsung в папку складывает отчёт о тестировании. Но чтобы его было можно посмотреть надо его обработать скриптом который идёт вместе с самим tsung. Скрипт лежит в папке /usr/lib/tsung/bin/tsung_stats.pl | + | По окончании тестирования tsung в папку складывает отчёт о тестировании. Но, чтобы его было можно посмотреть надо его обработать скриптом, который идёт вместе с самим tsung. Скрипт лежит в папке /usr/lib/tsung/bin/tsung_stats.pl |
<code bash> | <code bash> | ||
Строка 118: | Строка 119: | ||
После чего скрипт с генерирует уже человеко читаемый отчёт о тестировании. | После чего скрипт с генерирует уже человеко читаемый отчёт о тестировании. | ||
- | <note tip>Следует учитывать то что в данном сценарии и тест и сервер на одной машине так что грузить они её будут совместно. Для чистоты эксперимента рекомендуется сервер запускать на одной машине, а tsung на другой машине.</note> | + | <note tip>Следует учитывать то, что в данном сценарии и тест и сервер на одной машине, так что грузить они её будут совместно. Для чистоты эксперимента рекомендуется сервер запускать на одной машине, а tsung на другой машине.</note> |