Как мне настроить однопоточный сервер, чтобы он был удивительно быстрым?
У нас есть сервер менеджера лицензий, который работает на одном хосте. Он принимает TCP-соединения, выполняет какой-то обмен (я его не перепроектировал) и сохраняет TCP-соединение открытым в течение всего времени, в течение которого клиенту разрешено запускать программу. Мы приобрели большое количество (>500) лицензий. Таким образом, этот сервер имеет сотни открытых соединений TCP.
У нас есть неработающий поставщик, который не будет предоставлять доступ к исходному коду своего сервера лицензий и не будет помогать нам в настройке сервера Unix.
Я хотел бы настроить сервер так, чтобы он мог реагировать на сотни соединений, входящих в течение нескольких миллисекунд. У нас нет исходного кода на сервер, но мы можем настроить ОС Linux, на которой он работает.
Мои вопросы: какие параметры мы должны настроить?
Я уже модифицировал клиент для случайного отката и повторных попыток, если он не может подключиться к серверу.
1 ответ
Приведенный здесь список настраиваемых параметров мало поможет вашему серверу в лучшем состоянии. Настройка производительности - это процесс, а не задача. Измерьте, настройте и измерьте снова. Ограничьте настройку одним параметром за раз, чтобы изолировать воздействие. Брендан Грегг - один умный парень, когда дело доходит до настройки производительности (он написал книгу), так что проверьте его страницу на эту тему... http://www.brendangregg.com/linuxperf.html