Конференция "Сети" » Максимум соединений на сервер.
 
  • Дмитрий С © (13.08.12 16:50) [0]
    Какой разумный максимум для tcp соединений на 1 сервер? На 1 ip адрес? (для Windows и для Debian)
    Предположим что сервер "вялый", основная его работа - это держать эти соединения и время от времени что-то обновлять в базе.
  • Slym © (15.08.12 14:42) [1]
    теоретический предел для ipv4 2^32
    практический упирается в адресное пространство ОЗУ на 32битах 2Гб
    1. объект сокет имеет r/s буфера обычно 8192+8192б (зависит от настроек ОС) + память под внутренние структуры хендла
    2. объект поток имеет стек обычно в 1мб
     2.1. в многопоточном сервере 1 сокет на поток
     2.2. в остальных случаях (порты завершения и асинхронка) сколько потоков укажешь столько и будет, но плюс память под буфера склейки и прочую ерунду для борьбы с асинхронкой
    3. тебе еще и в базу класть плюсуй и это

    итого: больше всего конектов выдержит асинхронка и порты завершения, микрософт рекомендует порты завершения как самый "дешевый"
  • Slym © (15.08.12 14:45) [2]
    под линухом форкаться и ограничения на АП ОЗУ второстепенны
    ограниечение под общий объем ОЗУ
  • DVM © (15.08.12 16:44) [3]
    Еще портов конечное количество
  • Дмитрий С © (17.08.12 12:20) [4]

    > Slym ©   (15.08.12 14:42) [1]

    Спасибо за развернутый ответ. Почитаю про порты завершения. Я вообще себе представлял несколько потоков, в каждом с помощью вызовов select обслуживаются несколько соединений.

    Вообще хотелось бы в пике иметь возможность обслуживать до 20 000 соединений, но на деле их скорее всего 1-3 тыс.


    > под линухом форкаться

    А использовать потоки в линуксе нежелательно? Вроде как тотже фрипаскаль позволяет их создавать.


    > Еще портов конечное количество

    Вот это больше всего смущает. 65000 всего их. Но вроде как этот вопрос решается дополнительными IP адресами сервера.
  • Slym © (21.08.12 06:12) [5]
    это прибинденых 2^16, а остальных (исходящих и ацептованых) предел оператива /настройки ос

    сокет пира идентифицируется по адресу и порту пира - их может быть много больше 65535
 
Конференция "Сети" » Максимум соединений на сервер.
Есть новые Нет новых   [134436   +21][b:0][p:0]