2013-07-03 6 views
0

В примере stream3.c есть команда pipe(fd), производящая два файловых дескриптора, fd[0] и fd[1].
Этот скрипт продолжает работать командой wake_up(argv, fd[0], WK_FD).
Это означает, что каждый скрипт на сервере использует два дескриптора файла.Как дескриптор файла ограничивает соединение в stream3.c

Кто может сказать:

  • Что делать, если есть 100000 активный и продолжительный запуск сценариев, как указано выше, или даже больше?
  • Будет ли он исчерпан весь файловый дескриптор?
  • Сколько системных ресурсов хранится для поддержания активных соединений?

ответ

0

Это означает, что каждый скрипт-сервер использует 2 дескриптора файла.

№ См. Пример comet.c для сценария на сервере, который не использует дополнительные файловые дескрипторы.

Скрипт stream3.c выступает в роли клиента (для вызова внутреннего сервера или системного канала) в дополнение к генерации содержимого для удаления клиента.

Нет никакого способа сделать это без нового дескриптора файла.

Что делать, если есть 100 000 активных и длительных запущенных скриптов, как указано выше?

G-WAN выделит необходимые ресурсы.

Удалось ли все дескриптор файла?

No.

Сколько stystem ресы проводятся для поддержания соединения активным?

Установить 10 соединений и посмотреть, сколько ресурсов было выделено. Разделите это число на 10, чтобы найти накладные расходы по соединению.

+0

thx. рассмотрим пример, comet.c. –

+0

должен добавить, что при большинстве установок linux по умолчанию это WILL эффективно запускается в ulimit, FD_SETSIZE и т. Д. До достижения 100k, но если это так, это не проблема GWAN, поэтому вы можете добавить это к ответу (так что люди не ошибайтесь обвинять GWAN, когда они достигают ulimit). По крайней мере, если я не ошибаюсь в разных границах (я не буду называть себя экспертом, так что это нормально);) – griffin

+1

В режиме демона G-WAN уже поднимает эти ограничения на более высокий уровень, см. Ваш gwan.log файл. – Gil