Problema C10k
# Problema C10k

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. El nombre C10k es un numerónimo para administrar diez mil conexiones concurrentes. 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

El término fue acuñado en 1999 por Dan Kegel, 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. 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..

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), 10-12 millones de conexiones (MigratoryData, 12 núcleos, usando Java sobre Linux)

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.

