Тестирование Apache Mina Общая пропускная способность - PullRequest
2 голосов
/ 24 ноября 2010

Я занимаюсь разработкой относительно быстро развивающейся игры (серверная часть Flash / Apache Mina Server), и у меня возникают трудности с получением точного эталона типа пропускной способности, который будет использоваться моей текущей настройкой.

У меня вопрос: как мне получить точный эталон пропускной способности, необходимой для моих тестов? То, что я делаю сейчас, не будет учитывать какие-либо издержки?

Для методов отправки / получения сообщений яя делаю

[out/in]Bandwidth+= message.toString().getBytes().length;

Затем я распечатываю текущие значения каждые 250 миллисекунд (поскольку именно так часто происходят "мировые" обновления в настоящее время).

С 10 "монстрами", все случайно перемещаютсявокруг и 1 игрок, случайно перемещающийся вокруг, я получаю этот вывод .. (1 секунда окна здесь)

In bandwidth: 1647, Outgoing: 35378
In bandwidth: 1658, Outgoing: 35585
In bandwidth: 1669, Outgoing: 35792
In bandwidth: 1680, Outgoing: 35999

Таким образом, действуя строго в соответствии с размером передаваемых сообщений (исходящих), который работает до 621 байта/ секунда или (621/10) 62,1 байта в секунду на постоянно движущийся элемент на экране на человека.Это кажется немного низким, хорошее высокоскоростное соединение может обрабатывать более 1000 обновлений объектов в секунду с такой «скоростью», без проблем.

1 Ответ

0 голосов
/ 25 ноября 2010

Что-то определенно пахнет здесь подозрительно.Согласно предоставленному ими тестированию производительности: здесь mina способен обрабатывать 20K + 405 байт в секунду на ~ 10 соединениях - намного больше, чем вы видите.

Я предполагаю, что здесь происходит какая-то проблема с синхронизацией и синхронизацией, которая вызывает задержку.Я бы воспользовался помощью приложения трассировки пакетов, такого как wireshark, и посмотрел бы, совпадают ли ваши наблюдения с кодом необработанных сетевых данных.Я также попытался бы «залить» серверную часть большим количеством данных, если это возможно, - это могло бы дать некоторое представление о том, в чем заключается проблема.

Надеюсь, это поможет, удачи.

...