Перейти к содержанию

Нагрузочное тестирование с использованием другого сервера

Настройка сервера Ubuntu

  1. Установите Xvfb, Xorg для работы с виртуальным устройством вывода

    apt-get install xvfb -y
    apt-get install x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xserver-xorg-core xserver-xorg-video-dummy alsa-base -y
    

  2. Установите dummy sound card (в Ubuntu 20.04 и новее данный шаг можно пропустить)

    apt-get install linux-image-extra-4.4.0-62-generic -y
    modprobe snd-dummy
    

  3. Настройте виртуальный монитор: отредактируйте файл конфигурации /usr/share/X11/xorg.conf.d/xorg.conf

    Section "Device"
        Identifier  "Configured Video Device"
        Driver      "dummy"
        Option "ConstantDPI" "true"
        VideoRam 192000
    EndSection
    
    Section "Monitor"
        Identifier  "Configured Monitor"
        HorizSync 31.5-48.5
        VertRefresh 50-70
        Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
        Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946
        Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
        ModeLine "1366x768" 72.00 1366 1414 1446 1494  768 771 777 803
        Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
        Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
        Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807
        Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807
        Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
        Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076
    EndSection
    
    Section "Screen"
        Identifier  "Default Screen"
        Monitor     "Configured Monitor"
        Device      "Configured Video Device"
        DefaultDepth 24
        SubSection "Display"
            Depth 24
            Modes "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768"
        EndSubSection
    EndSection
    
    Section "ServerFlags"
        Option "MaxClients" "2048"
    EndSection
    

  4. Установите Apache и настройте SSL, если планируете размещать тестовую страницу на этом же сервере

    apt-get install apache2
    

  5. Установите Chrome

    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
    apt-get update
    apt-get install google-chrome-stable
    

Скрипты для нагрузочного тестирования

Архив со скриптами для нагрузочного тестирования доступен для скачивания здесь.

Архив содержит:

  • директорию player со скриптами Web-плеера
  • start_xorg.sh - скрипт для запуска Xorg
  • loadtest.sh - скрипт для запуска тестов

Скрипты плеера должны быть доступны из Apache HTML директории: поместите директорию player, например, в /var/www/html/tests/player. Тестовую страницу player.html можно вызывать с параметрами. Например:

https://<server IP>/tests/player/player.html?streamName=test&autoplay=true

Поддерживаются следующие параметры

  • имя потока: streamName=test
  • автозапуск воспроизведения: autoplay=true
  • разрешение: resolution=640x480 (при этом на сервере включается транскодинг, что увеличивает нагрузку на сервер)
  • технология воспроизведения: mediaProvider=WebRTC,MSE

Также в тестах может быть использована страница Embed Player с тестируемого сервера:

https://wcs:8888/embed_player?urlServer=wss://wcs:8443&streamName=test&mediaProviders=WebRTC&autoplay=true

Скрипту loadtest.sh могут быть переданы следующие параметры:

обязательный:

  • url - URL страницы плеера с необходимыми параметрами или
  • urlsfile - путь к файлу, содержащему несколько таких URL-адресов, которые будет пройдены по порядку

опциональные:

  • stressrate - интервал добавления нового подписчика в миллисекундах
  • ttl - время жизни подписчика в секундах, должно быть больше, чем число подписчиков, умноженное на stressrate в секундах
  • maxsubscribers - максимальное количество подписчиков

Запуск тестов

  1. Запустите Xorg

    ./start_xorg.sh
    

  2. Увеличьте максимальное количество открытых файлов в системе

    ulimit -n 1000000
    

  3. Запустите loadtest.sh с необходимыми параметрами
    Например,

    ./loadtest.sh -url https://wcs:8888/embed_player?urlServer=wss://wcs:8443&streamName=test&mediaProviders=WebRTC&autoplay=true -maxsubscribers 50 -stressrate 1000 -ttl=300
    
    или
    ./loadtest.sh -urlsfile urls.txt -stressrate 1000 -ttl 300 -maxsubscribers 50