C10k: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
поддержка переименования
чуть поподробнее, + источник
Строка 1: Строка 1:
'''C10k''' ({{lang-en|C10k; 10k connections}} — проблема 10 тысяч соединений) — условное название задачи конфигурирования и обслуживания высокопроизводительного [[Сервер (программное обеспечение)|сервера]], способного обслуживать порядка 10 тыс. соединений одновременно. Формально [[Сервер (аппаратное обеспечение)|аппаратное обеспечение]] современных компьютеров имеет должную производительность для выполнения задачи, однако неэффективные [[алгоритм]]ы могут приводить к возникновению «заторов».
'''C10k''' ({{lang-en|C10k; 10k connections}} — проблема 10 тысяч соединений) — условное название задачи конфигурирования и обслуживания высокопроизводительного [[Сервер (программное обеспечение)|сервера]], способного обслуживать порядка 10 тыс. соединений одновременно. Формально [[Сервер (аппаратное обеспечение)|аппаратное обеспечение]] современных компьютеров имеет должную производительность для выполнения задачи, однако неэффективные [[алгоритм]]ы могут приводить к возникновению «заторов».


Возникло в 1999 году в рамках задачи обслуживания популярного в то время публичного [[FTP-сервер]]а {{iw|Simtel}}, его администратор Ден Кегель обратил внимание, что обслуживающий узел на гигабитном канале по аппаратным показателям должен был бы справляться с нагрузкой в 10 тыс. соединений, но программное обеспечение этого не позволяло.
Считается, что ряд известных [[веб-сервер]]ов преодолевают эту проблему, среди таковых [[Nginx]], [[Lighttpd]], [[Cherokee HTTP Server]],[[Tornado]], [[Node.js]], [[Yaws]]{{нет АИ|20|05|2017}}. Многие из них опираются на [[Событийно-ориентированное программирование|управляемую событиями]] — асинхронную архитектуру, вместо выделения потоков для обработки запросов.

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

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


== Ссылки ==
== Ссылки ==
* [http://www.kegel.com/c10k.html C10k problem]
* [http://www.kegel.com/c10k.html C10k problem]
* {{статья | автор = D. Liu, R. Deters | заглавие = The Reverse C10K Problem for Server-Side Mashups | doi = 10.1007/978-3-642-01247-1_16 | издание = Service-Oriented Computing — ICSOC 2008 Workshops | том = 5472 (Lecture Notes in Computer Science) | страницы = 166 | год = 2009 | isbn = 978-3-642-01246-4 }}

{{rq|empty|sources|check}}
{{rq|empty|sources|check}}



Версия от 17:07, 20 мая 2017

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

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

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

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

Ссылки