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

 
 
> 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
Ответов
=F8=
сообщение May 30 2012, 12:44
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



over 9000 на несчастный контроллер?
Go to the top of the page
 
+Quote Post
sobr
сообщение May 30 2012, 13:44
Сообщение #3


Знающий
****

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



Цитата(=F8= @ May 30 2012, 19:44) *
over 9000 на несчастный контроллер?

Какой контроллер, вы о чем?
Я имею в виду сервер в дата-центре.
Суть в том, что щас делаю ТСР сервер к которому будут коннектиться
Десятки тысяч девайсов через GPRS. А сдругой стороны столько же юзеров с компов и айфонов.
Сервер создает практически прозрачный канал между девайсом в машине и юзером, и тот в онлайне мониторит и управляет.
Вот и встал вопрос какой мощности железо надо ставить в датацентре.
С ходу не нашел готовый инструмент для стресс-теста.
Пока выкрутился так: сам сервер VPS 600 MGz, на другом таком же плодятся клиенты в количестве 1000 и хором каждую секунду на мой сервак отправляют пакеты по 100 байт.
Проц нагрузился на 15%. тест конечно не очень коректный, но в первим приближении пойдет.

А те виртуальные серверы под винду на которые вы ссылки привели попробуйте хотя бы 1000 сокетов нагрузить, скорее всего разочаруетесь.
Go to the top of the page
 
+Quote Post
GeGeL
сообщение May 31 2012, 10:08
Сообщение #4


Местный
***

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



Цитата(sobr @ May 30 2012, 16:44) *
Суть в том, что щас делаю ТСР сервер к которому будут коннектиться
Десятки тысяч девайсов через GPRS. А сдругой стороны столько же юзеров с компов и айфонов.
Сервер создает практически прозрачный канал между девайсом в машине и юзером, и тот в онлайне мониторит и управляет.



Я так понимаю, речь идет о сервере мониторинга объектов (охрана, навигация и т.д.). Тоже занимался аналогичным, сделал так:
- использую самый дешевый VDS (P500 MHz, 256 RAM с Ubuntu), 5 уе/мес
- обработка на сервере МИНИМАЛЬНА: в одном потоке разруливание пакетов и архивация , причем не в БД, а в суточный двоичный файл в собственном сжатом формате с метками времени. Доступ клиента к архиву через свой UDP-протокол, использующий метки времени.
- связь с объектами и с клиентами (диспетчера, визуализация, управление) - только UDP, на сервере ОДИН сокет, так гораздо економнее по ресурсам.
- каждый клиент поддерживает связь с помощью KeepAlive, отваливается по таймауту, каждое устройство требует подтверждения данных сервером, но не на каждый пакет, а по необходимости.
- сервер также обеспечивает транзит управляющий пакетов "клиент - устройство" туда и обратно.
- все остальные вычисления, обработка, фильтрация, сортировка, выборка и т.п. - на клиентской программе.


Многое зависит также от программирования: все желательно делать компакно и оптимально по коду, заранее чувствуя, как оно будет тянуть ресурс.
А вот что касается не-windows - юзеров (Android, iOS etc) - вопрос пока остался открытым. Возможно, придется тоже подымать второй сервер c Apachi и на php делать мультиюзера, работающего с браузерными клиентами, но это уже другой разговор.

Сообщение отредактировал GeGeL - May 31 2012, 10:14
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 1 2012, 03:11
Сообщение #5


Знающий
****

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



Цитата(GeGeL @ May 31 2012, 17:08) *
Я так понимаю, речь идет о сервере мониторинга объектов (охрана, навигация и т.д.). Тоже занимался аналогичным, сделал так:...
И сколько клиентов одновременно держит?


Цитата(Frolov Kirill @ May 30 2012, 22:34) *
Я правильно понимаю, сервер просто из тцп/удп сокета айфона отправляет в тцп/удп сокет прибора, и наоборот? Т.е. практически обработки информации нет. Это резко меняет дело. Потому, что когда речь идёт о БД, о вебе со скриптами, об каких-то других приложениях -- это одно. А тут просто proxy.
Ну не совсем. Железка прицепляется к серверу по ТСР, авторизуется и гонит пакеты в бинарном виде. Когда прицепляется юзер через Websockets с такимже идентификатором, сервер переводит пакеты из бинарного в текстовый формат и шлет юзеру и наоборот. От БД пока отказался.
Цитата
Но -- десятки тысяч, это сколько?
Да хрен его знает, сколько влезет.
Цитата
Тут дальше начинаются вопросы связанные в основном с архитектурой ПО в первую очередь, во второй очереди лимит количества (полу)пустых пакетов в секунду, на сетевом интерфейсе. Для 100Мбит сети во втором случае речь будет идти где-то о 64к пакетов в секунду, с другой стороны поддержать более 64к коннектов на один тцп/удп порт тоже не получится. Но 100МБит сеть закончится в пределах датацентра и дааалеко не факт, что хостинг-провайдер будет иметь достаточно хорошую связность с опсосами, но это отдельный вопрос и пока далёкий. Зато недалёким видится вопрос в регулярной нарушении оной связности, что бывает в любом датацентре, и жалобы десятков тысяч клиентов. А также различные сбои ПО, сети, чего угодно ещё. Напрашивается по меньшей мере два различных сервера на двух разных площадках, множественные A-записи в DNS, и ещё скорей какие-то методы балансирования нагрузки на уровне IP-протокола (маршрутизации). Если это только прокси.
Вот для того, что бы это выяснить и хочу нагрузить его по самое "не балуйся".
Цитата
Что касается архитектуры ПО. google C10k problem. Вопрос в архитектуре ПО сервера...
Пока остановился на Node.js
Цитата
VPS. Позволяет масштабирование по ресурсам и деньгам в весьма широких пределах.
VPS только для тренировки "на кошках", буду ставить нормальный сервер.
Цитата
Бредовая оценка. Зачастую лимитирует отнюдь не процессор. А (зависит от софта) размер ОЗУ, ограничения ОС на число открытых сокетов, пропускная способность сети и даже непосредственно сетевой карты.
Какая есть, нет возможности с кучи машин одновременно долбить сервер, по тому то и спросил как это можно устроить. Но в моем конкретном случае на 1000 коннектах пока лимитирует лишь процессор память практически не грузится. Сам сервер сжирает 9.5 МБ при 0 коннектов, а при 1000 - 10МБ. А вот нагрузка на проц растет пропорционально открытым сокетам, точнее даже не открытым а передающим.

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
|- - Frolov Kirill   Цитата(sobr @ May 30 2012, 17:44) Какой к...   May 30 2012, 15:34
|- - 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
- - GeGeL   Это интересная архитектура, но есть два но: 1. это...   Jun 1 2012, 16:43


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

 


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


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