Problema C10k

De Wikipedia, la enciclopedia libre

El término denominado Problema C10k es un problema de optimización de conexiones de red para gestionar un gran número de clientes al mismo tiempo.[1]​ El nombre C10k es un numerónimo para administrar diez mil conexiones concurrentes.[2]​ Cabe notar que las conexiones concurrentes no son lo mismo que solicitudes por segundo, aunque son conceptos similares: administrar muchas solicitudes por segundo requiere una alta capacidad de procesamiento, mientras que un alto número de conexiones concurrentes requiere administrar las conexiones de forma eficiente.

El problema de optimizar las conexiones ha sido estudiado porque se requiere considerar varios factores para que un servidor web pueda gestionar muchos clientes. Esto puede incluir una combinación de restricciones de sistema operativo y limitaciones del servidor web. Dependiendo del tipo de servicio a ofrecer y de las características del sistema operativo, entre otras consideraciones de hardware, como multi-procesamiento, se podría preferir un modelo multihilo o monohilo.

Historia[editar]

El término fue acuñado en 1999 por Dan Kegel,[3]​ en referencia a la capacidad de Simtel FTP host, cdrom.com, de servir 10.000 conexiones sobre un enlace de 1 Gigabit en ese año.[1]​ El término ha sido usado desde entonces para referirse al problema de gestionar un gran número de clientes, con varios términos análogos, como C10M en el 2010.[cita requerida].

En el año 2010 fue posible administrar millones de conexiones en un servidor estándar de 1U: sobre 2 millones de conexiones, (WhatsApp, 24 núcleos, utilizando Erlang sobre FreeBSD),[4][5]​ 10-12 millones de conexiones (MigratoryData, 12 núcleos, usando Java sobre Linux)[6][7]

Ejemplos de aplicaciones con un gran número de conexiones incluyen servidores de publicación/subscripción, mensajería, servidores de archivos y redes basadas en software. [cita requerida]

Véase también[editar]

Referencias[editar]

  1. a b «The C10K problem». Archivado desde el original el 18 de julio de 2013. Consultado el 13 de abril de 2016. 
  2. Liu, D.; Deters, R. (2009). «The Reverse C10K Problem for Server-Side Mashups». Service-Oriented Computing – ICSOC 2008 Workshops. Lecture Notes in Computer Science 5472. p. 166. ISBN 978-3-642-01246-4. doi:10.1007/978-3-642-01247-1_16. 
  3. Kegel, Dan (8 de mayo de 1999). «The C10K problem» (html). Kegel com (en inglés). Archivado desde el original el 8 de mayo de 1999. Consultado el 18 de junio de 2019. «And computers are big, too. You can buy a 500MHz machine with 1 gigabyte of RAM and six 100Mbit/sec Ethernet card for $3000 or so. Let's see - at 10000 clients, that's 50KHz, 100Kbytes, and 60Kbits/sec per client. It shouldn't take any more horsepower than that to take four kilobytes from the disk and send them to the network once a second for each of ten thousand clients. (That works out to $0.30 per client, by the way. Those $100/client licensing fees some operating systems charge are starting to look a little heavy!) So hardware is no longer the bottleneck.». 
  4. «1 million is so 2011». Archivado desde el original el 3 de septiembre de 2014. Consultado el 13 de abril de 2016. 
  5. Scaling to Millions of Simultaneous Connections, Rick Reed, WhatsApp
  6. How MigratoryData solved the C10M problem: 10 Million Concurrent Connections on a Single Commodity Server
  7. Scaling to 12 Million Concurrent Connections: How MigratoryData Did It