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

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

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

По состоянию на середину 2010-х годов серверный аппаратный узел среднего уровня способен обрабатывать до 10 млн соединений, в связи с чем появились требования к программному обеспечению обеспечивать соответствующий уровень производительности по количеству одновременных подключений, обозначаемые как C110M.
Q1371279
сервера
MEDIA
Q44127
аппаратное обеспечение
Concept
Q8366
алгоритм
Concept
Q42283
FTP-сервер
Concept
Q11288
веб-сервер
Concept
Q306144
Nginx
Concept
Q217765
Lighttpd
Concept
Q2373
Cherokee HTTP Server
MISC
Q1088546
Tornado
ORG
Q756100
Node.js
Concept
Q1999865
Yaws
ORG
Q213092
потоков выполнения
Concept
Q6545945
легковесных процессов
Concept
Q1142183
пользовательского пространства
Concept
Q722192
системных вызовов
Concept
Q9662
ядра операционной системы
Concept
Q2474734
C10k
UNK
1999-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
в 1999
DATE
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+10^^http://www.w3.org/2001/XMLSchema#decimal
10
NUMBER
+110^^http://www.w3.org/2001/XMLSchema#decimal
110
NUMBER
instance of
instance of
instance of
instance of
use