реклама на сайте
подробности

 
 
> TCP Server, Нагрузка на сервер
sobr
сообщение May 29 2012, 14:32
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Чем, как протестировать нагрузочную способность TCP сервера?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GeGeL
сообщение Jun 1 2012, 16:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Это интересная архитектура, но есть два но:
1. это управление постфактум. Боюсь, sobr это не устроит, исходя из специфики его приложений.
2. мощность сервера. Конечно, если это огромная компания, то пофиг: окупится. Но для старта не совсем удобно.

Я так сделал: на минимальном VDS кручу демон, опрашивающий в единственном потоке единственный удп-сокет с достаточно объемным буфером. М2М у меня тоже имеют "отложенное управление" - они активны, и получить управляющий пакет могут лишь после отправки своего (а отправляют они по фоновому интервалу, и по событию - в среднем 12-16 байт на пакет, никакого текста, все bin). Пакет имеет флаг необходимости подтверждения, М2М сам определяет критичность пакета.
Сервер эти пакеты обрабатывает минимально: проверяет КС, определяет номер М2М, пишет в суточный бинарный файл (как бы БД), по необходимости подтверждает и пересылает необходимым клиентам в неизменном виде через тот же сокет.
С клиентами по другому: сервер должен иметь их айпи-порты. Для этого использую массив с одним int (IP) и двумя short (порт и номер клиента). С помощью периодически отправляемых KeepAlive клиент прописывается в свободном слоте (записи массива). Получается 8 байт ОЗУ на клиента.
Но это хорошо, т.к. у меня клиентов много меньше, чем М2М (клиенты-это диспетчера групп М2М). Если клиентов равно М2М (думаю, у sobr именно так), то есть смысл заранее создать массив по количеству клиентов из int (IP) и short (port) (6 байт на клиента), так быстрее будет искать его.
То же самое придется сделать и для М2М, если необходимо обеспечить моментальное управление их клиентами.

Что касается работы с архивом, то это не так часто требуется, одновременное выполнение таких запросов ограничено всего 16-ю (теоретически ограничивается количеством открытых файлов в системе). Инициируется клиентом запрос с указанием даты (по ней определяется имя файла архива), диапазона времени, номера клиента. Сервер открывает нужный файл архива (там находятся пакеты) и соотв. индексный файл (туда через определенные интервалы времени пишется позиция основного файла). fseek переводит основной файл на нужную позицию, отбираются записи по нужному М2М (или по всем) и отправляются клиенту серией удп-пакетов с КС и инкрементируемыми идентификаторами. Клиент их пишет в свою БД и далее делает анализ своими силами.

Т.о. сервер использует фантастически минимальный ресурс без особой потери в гарантии обслуживания за счет опционного подтверждения пакетов. Ну и код для gcc пишется за пару вечеров...

Сообщение отредактировал GeGeL - Jun 1 2012, 17:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sobr   TCP Server   May 29 2012, 14:32
- - sobr   Цитата(sobr @ May 29 2012, 21:32) Чем, ка...   May 30 2012, 08:40
- - =F8=   А что значит нагрузочная способность? Сколько соед...   May 30 2012, 09:14
- - Frolov Kirill   Цитата(sobr @ May 29 2012, 18:32) Чем, ка...   May 30 2012, 11:40
- - =F8=   over 9000 на несчастный контроллер?   May 30 2012, 12:44
|- - sobr   Цитата(=F8= @ May 30 2012, 19:44) over 90...   May 30 2012, 13:44
|- - Frolov Kirill   Цитата(sobr @ May 30 2012, 17:44) Какой к...   May 30 2012, 15:34
|- - GeGeL   Цитата(sobr @ May 30 2012, 16:44) Суть в ...   May 31 2012, 10:08
|- - sobr   Цитата(GeGeL @ May 31 2012, 17:08) Я так ...   Jun 1 2012, 03:11
|- - GeGeL   Цитата(sobr @ Jun 1 2012, 06:11) И скольк...   Jun 1 2012, 05:47
- - sobr   Во... Беседа началась. С вашего позволения завтра ...   May 30 2012, 16:28
- - andrewlekar   Проще свою тестилку написать и запустить 100500 эк...   May 31 2012, 05:08
- - Slonofil   Закажите DDoS на свой адрес =)   May 31 2012, 09:30
- - MKdemiurg   ЦитатаНу не совсем. Железка прицепляется к серверу...   Jun 1 2012, 05:35
|- - sobr   Цитата(MKdemiurg @ Jun 1 2012, 12:35) Зря...   Jun 1 2012, 06:33
- - MKdemiurg   Цитата(GeGeL @ Jun 1 2012, 08:47) А зря в...   Jun 1 2012, 06:40


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016