Назад | Перейти на главную страницу

Есть ли способ улучшить производительность inetd?

У меня есть настройка tcp-сервера с использованием inetd на aix 5.3.

Проблема в том, что ответы от сервера приходят очень-очень медленно, но если у меня есть автономный deamon-сервер, он будет очень быстрым. Но мое требование - использовать inetd.

Итак, есть ли способ улучшить производительность inetd.

Спасибо

Наилучший способ улучшить производительность - это убрать все из виду. Но если вам действительно нужно использовать inetd, вот несколько идей:

  1. Установите для inetd отрицательный приоритет.
  2. Выключить / выключить ведение журнала inetd
  3. Войдите на более быстрый диск / рейд.

Другая возможность заключается в том, что ваша служба обрабатывает один запрос или небольшое количество запросов, а затем закрывается. Если это так, то под нагрузкой inetd потребует много времени на перезапуск вашей службы. Итак, вы хотите избежать этого сценария.

Последняя возможность заключается в том, что проблема, которую вы видите, вызвана некорректным завершением серверных процессов и зависанием, используя ресурсы ядра. В худшем случае они могут даже крутиться. Было бы полезно использовать инструменты мониторинга вашей системы, чтобы увидеть, что на самом деле происходит, когда ваша система работает медленно.

Одна из проблем при запуске inetd заключается в том, что это приведет к увеличению производительности. Если производительность вызывает беспокойство, а это так, не используйте inetd и используйте автономный демон.

Можете ли вы дать нам некоторое представление о разнице между «очень-очень медленно» и «очень быстро»? Возможно, inetd выполняет что-то вроде обратного поиска IP-адресов для каждого соединения (я не знаю точно, это всего лишь предположение), и, возможно, у вас нет DNS-сервера, настроенного для ответа, поэтому он получает тайм-аут в 1-2 минуты при каждом подключении.

Если разница составляет «10 в секунду» против «12 в секунду», то у вас будут другие проблемы, чем если разница в «требуется 90 секунд для ответа» и «отвечает сразу».

Похоже, ваша служба TCP запускается для каждого запроса, поступающего в inetd, а затем немедленно закрывается.

Формирование такого нового процесса для каждого запроса происходит довольно медленно, поэтому я думаю, что лучше всего изменить службу TCP, чтобы она оставалась в живых, чтобы обрабатывать x количество запросов перед завершением работы.