Pull to refresh

Comments 8

интересная штука, а можно подробную инструкцию как запускать бенчмарки? просто ./benchmark/runBenchmark.sh у меня не работает

Это старые бенчмарки, они с websocketpp сделаны. По идее ./runBenchmark.sh должен скомпилить из исходников 2 файла ./benchmark_tls и benchmark_nontls. Они по сути и запускаются.
Что-бы runBenchmark.sh работал, вы должны находиться в том-же каталоге, в котором расположены 3 файла: runBenchmark.sh, echo_client_tls.cpp и echo_client.cpp
При запуске нужно указывать кол-во процессов, размер payload и uri сервера WebSocket.

Запускать так:
./runBenchmark.sh 240 1024 wss://localhost:5083/target

Естественно вместо wss:// мозно использовать ws://, вместо localhost можно подставить IP конкретного сервера WebSocket с запущенным echo-сервисом. /target требуется только если сервер знает что делать с таргетом.

— Если хотите использовать LAppS для тестов, то нужно поднять эхо сервис:

В файле /opt/lapps/etc/conf/lapps.json добавить ехо сервис:
{
  "directories": {
    "app_conf_dir": "etc",
    "applications": "apps",
    "deploy": "deploy",
    "tmp": "tmp",
    "workdir": "workdir"
  },
  "services": {
    "echo": {
      "auto_start": true,
      "instances": 2,
      "internal": false,
      "max_inbound_message_size": 16777216,
      "preload": null,
      "protocol": "raw",
      "request_target": "/echo",
      "extra_headers" : {
        "Service" : "echo",
        "Strict-Transport-Security" : "max-age=31536000; includeSubDomains"
      }
    }
  }
}

Потом запустить lapps в режиме демона: /opt/lapps/bin/lapps -d

Потом перейти в директорию где лежит ./runBenchmark.sh и запустить его. В URI обязательно указывать таргет /echo — т.к сервис поднят именно для этого таргета (см конфиг сервиса выше)

Новый бенчмарк работает как сервис LAppS, т.е. его нужно задеплоить. И да, это только после сборки из гита.

P.S: демон можно остановить с помощью kill -15 pid-LappS. Тесты прерывать по Ctrl-C бесполезно, — процессы в фоне будут крутиться. После стопа LappS-a клиентские процессы отвалятся.
Вы бы на этом своём сервере игрушку какую-нибудь многопользовательскую простейшую замутили бы, вот тогда народ оценил бы. Даже если простейшая какая-то вроде змейки, но не падающая от огромного количества сообщений в реальном времени.
Я честно не могу представить, что «змейка» должна делать в онлайне. Давайте так: вы делаете фронтенд, и говорите мне что нужно от бэкенда, думаю осилим вдвоём. Пишите в личку.
Змеек может быть много и каждой управляет отдельный человек. Что-то вроде slither.io. Такие задачи действительно часто упираются в логистику сообщений. Если делать в лоб, то там квадратичная зависимость.
На счет скооперироваться=) так я ж тоже бэкендщик=)
На одном CPU — это сколько потоков?
Вообще на этом CPU 4-e ядра, если s Hyperthreading то 8.

Параллельно работающих IOWorkers в тестах — 4
Параллельных инстансов echo сервиса: 2
Параллельныйх инстансов нагрузки: 4

Load при 5-мин исполнении: 3.97
Использование CPU LAppS-ом (это и клиентом и сервером) 6.37 CPU
Involuntary context switches: 0
Voluntary context switches: 14

Из железа выжато всё.

Кстати на ноуте пробовал запустить (AMD A8) — в 10-15 раз медленнее, но там и частота вдвое ниже и память тормозная (Хотя 4-е честных ядра).
Sign up to leave a comment.

Articles