stringtranslate.com

Проблема C10k

Проблема C10k — это проблема оптимизации сетевых сокетов для одновременной обработки большого количества клиентов. [1] Название C10k — это нумероним для одновременной обработки десяти тысяч соединений. [2] Обработка множества одновременных соединений — это проблема, отличная от обработки множества запросов в секунду : последняя требует высокой пропускной способности (их быстрой обработки), в то время как первая не обязательно должна быть быстрой, но требует эффективного планирования соединений.

Проблема оптимизации сервера сокетов была изучена, поскольку необходимо учитывать ряд факторов, чтобы веб-сервер мог поддерживать множество клиентов. Это может включать сочетание ограничений операционной системы и ограничений программного обеспечения веб-сервера. В зависимости от объема предоставляемых услуг и возможностей операционной системы, а также аппаратных соображений, таких как возможности многопроцессорной обработки, может быть предпочтительна многопоточная модель или однопоточная модель . Одновременно с этим аспектом, который включает соображения относительно управления памятью (обычно связанные с операционной системой), подразумеваемые стратегии относятся к самым разным аспектам управления вводом-выводом. [2]

История

Термин C10k был придуман в 1999 году инженером-программистом Дэном Кегелем [3] [4] со ссылкой на FTP-хост Simtel , cdrom.com , обслуживавший 10 000 клиентов одновременно по Ethernet со скоростью 1 гигабит в секунду в том году. [1] С тех пор этот термин использовался для общей проблемы большого количества клиентов, с похожими нумеронами для большего количества подключений, в последнее время «C10M» в 2010-х годах для обозначения 10 миллионов одновременных подключений. [5]

К началу 2010-х годов стали возможны миллионы подключений на одном стандартном сервере высотой 1U, монтируемом в стойку: более 2 миллионов подключений ( WhatsApp , 24 ядра, с использованием Erlang на FreeBSD ) [6] [7] и 10–12 миллионов подключений (MigratoryData, 12 ядер, с использованием Java на Linux ). [5] [8]

Распространенные приложения с очень большим количеством подключений включают в себя серверы общего пользования, которые должны обслуживать тысячи или даже миллионы пользователей одновременно, такие как файловые серверы , FTP-серверы , прокси-серверы , веб-серверы и балансировщики нагрузки . [9] [5]

Смотрите также

Ссылки

  1. ^ ab "Проблема C10K". Архивировано из оригинала 2013-07-22.
  2. ^ ab Liu, D.; Deters, R. (2009). "Обратная проблема C10K для серверных гибридных приложений". Сервисно-ориентированные вычисления – семинары ICSOC 2008. Конспект лекций по информатике. Том 5472. стр. 166. doi :10.1007/978-3-642-01247-1_16. ISBN 978-3-642-01246-4.
  3. ^ Эндрю Алексеев (2012). "§14. nginx; §14.1. Почему важен высокий параллелизм?". В Эми Браун; Грег Уилсон (ред.). Архитектура приложений с открытым исходным кодом, том II: Структура, масштаб и еще несколько бесстрашных хаков. Lulu.com . ISBN 9781105571817. Около десяти лет назад Дэниел Кегель, известный инженер-программист, … Манифест Кегеля C10K … решающий проблему C10K 10 000 одновременных подключений, nginx
  4. ^ Kegel, Dan (8 мая 1999 г.). "Проблема C10K". Kegel com . Архивировано из оригинала 8 мая 1999 г. Получено 18 июня 2019 г. И компьютеры тоже большие. Вы можете купить машину на 500 МГц с 1 гигабайтом оперативной памяти и шестью картами Ethernet 100 Мбит/с примерно за 3000 долларов. Давайте посмотрим — при 10000 клиентов это 50 кГц, 100 Кбайт и 60 Кбит/с на клиента. Не должно потребоваться больше лошадиных сил, чтобы взять четыре килобайта с диска и отправить их в сеть раз в секунду для каждого из десяти тысяч клиентов. (Кстати, это составляет 0,30 доллара за клиента. Те лицензионные сборы в размере 100 долларов за клиента, которые взимают некоторые операционные системы, начинают казаться немного тяжелыми!) Так что оборудование больше не является узким местом.
  5. ^ abc Михай Ротару (2015-05-20). «Как MigratoryData решила проблему C10M: 10 миллионов одновременных подключений на одном сервере массового потребления». migratorydata.com . Получено 2021-10-15 .
  6. ^ "1 миллион - это так 2011". WhatsApp blog . 6 января 2012. Архивировано из оригинала 1 мая 2014. Получено 25 июля 2019. На этот раз мы также хотели поделиться с вами некоторыми техническими подробностями об оборудовании, ОС и программном обеспечении: hw.machine: amd64 hw.model: Intel(R) Xeon(R) CPU X5675 @ 3.07GHz hw.ncpu: 24 hw.physmem: 103062118400 hw.usermem: 100556451840
  7. ^ Рид, Рик (30 марта 2012 г.). «Масштабирование до миллионов одновременных подключений» (PDF) . Erlang Factory . стр. 7. Архивировано из оригинала (PDF) 9 июля 2012 г. . Получено 25 июля 2019 г. .
  8. ^ Михай Ротару (10.10.2013). «Масштабирование до 12 миллионов одновременных подключений: как это сделала MigratoryData». migratorydata.com . Получено 15.10.2021 .
  9. ^ Поннусвами Садаяппан; Маниш Парашар; Рамамурти Бадринатх; Виктор К. Прасанна (2008). Высокопроизводительные вычисления – HiPC 2008. Springer. ISBN 978-3-540-89893-1. Получено 15 октября 2021 г. .