Interested Article - C10k

C10k ( англ. C10k; 10k connections — проблема 10 тысяч соединений) — условное название задачи конфигурирования и обслуживания высокопроизводительного сервера , способного обслуживать порядка 10 тыс. соединений одновременно. Формально аппаратное обеспечение современных компьютеров имеет должную производительность для выполнения задачи, однако неэффективные алгоритмы могут приводить к возникновению «заторов».

Возникло в 1999 году в рамках задачи обслуживания популярного в то время публичного FTP-сервера , его администратор Ден Кегель обратил внимание, что обслуживающий узел на гигабитном канале по аппаратным показателям должен был бы справляться с нагрузкой в 10 тыс. соединений, но программное обеспечение этого не позволяло.

Ряд известных веб-серверов особо подчёркивает решение задачи C10k, среди таковых Nginx , Lighttpd , Cherokee HTTP Server , Tornado , Node.js , Yaws . Для обхода проблемы используются различные техники: пулирование потоков выполнения (вместо выделения на каждое соединение отдельного потока), применение легковесных процессов , поддержка функций соединений средствами исключительно пользовательского пространства (с минимизацией системных вызовов для обхода ограничений ядра операционной системы ).

По состоянию на середину 2010-х годов серверный аппаратный узел среднего уровня способен обрабатывать до 10 млн соединений, в связи с чем появились требования к программному обеспечению обеспечивать соответствующий уровень производительности по количеству одновременных подключений, обозначаемые как C10M .

Ссылки

  • D. Liu, R. Deters. The Reverse C10K Problem for Server-Side Mashups // Service-Oriented Computing — ICSOC 2008 Workshops. — 2009. — Т. 5472 (Lecture Notes in Computer Science) . — С. 166 . — ISBN 978-3-642-01246-4 . — doi : .
Источник —

Same as C10k