{"id":189,"date":"2010-03-05T12:16:00","date_gmt":"2010-03-05T11:16:00","guid":{"rendered":"http:\/\/beta.expertosenti.com\/2010\/03\/%c2%bfpuede-afectar-el-emule-de-los-usuarios-a-la-capacidad-total-de-mi-infraestructura\/"},"modified":"2017-04-24T16:48:49","modified_gmt":"2017-04-24T14:48:49","slug":"puede-afectar-el-emule-de-los-usuarios-a-la-capacidad-total-de-mi-infraestructura","status":"publish","type":"post","link":"https:\/\/www.xpnti.net\/en\/puede-afectar-el-emule-de-los-usuarios-a-la-capacidad-total-de-mi-infraestructura\/","title":{"rendered":"\u00bfPuede afectar el eMule de los usuarios a la capacidad total de mi infraestructura?"},"content":{"rendered":"<p>Hoy, al ir a comprar el pan me he dado cuenta que una panaderia no es tan diferente a la estructura que puede tener un servicio Web.<\/p>\n<p>Vamos a suponer u<strong>na panaderia con dos personas tras el mostrador <\/strong>que van atendiendo a los clientes conforme la cola avanza, uno a uno y sin que nadie se cole (\u00bfcola con prioridades?). Normalmente no hay problemas y los clientes pues piden <strong>sus barras de pan o pastas, pagan y se van dejando libre para el siguiente<\/strong> cliente, hasta aqu\u00ed perfecto, el problema est\u00e1 cuando empiezan a servir a <strong>aquella se\u00f1ora mayor<\/strong> que todos tememos y que va preguntando a la chica si esto o lo otro, buscando el cambio, etc&#8230;, con lo que el tiempo de servicio <strong>se multiplica casi por infinito<\/strong> (almenos aparentemente :-P), con lo que la panaderia se queda con la mitad de capacidad de venta, una de las dos personas esta <strong>bloqueada por culpa del cliente.<\/strong> El problema se agrava cuando te bloquean a todos los dependientes con clientes lentos ya que la cola no hay forma que avance y algunos clientes fidelizados se te van a la panaderia de la siguiente esquina&#8230;<br \/>\nHasta aqui, diria que todos lo hemos vivido,la unica soluci\u00f3n es esperar o llamar a la compa\u00f1era que est\u00e1 en la trastienda para que atienda a nuevos clientes,deje de hacer lo que hac\u00eda (\u00bfhuman repurpose?) y asumimos el incremento del coste de la venta y el coste de oportunidad de lo que hac\u00eda (\u00bfpreparar un catering para dentro de un rato que entregaremos justo y tendremos un cliente importante mosqueado?)<\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/farm1.static.flickr.com\/139\/372531048_1a2ec9f961_o_d.jpg\"><img loading=\"lazy\" src=\"http:\/\/farm1.static.flickr.com\/139\/372531048_1a2ec9f961_o_d.jpg\" border=\"0\" alt=\"\" width=\"640\" height=\"480\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><a rel=\"cc:attributionURL\" href=\"http:\/\/www.flickr.com\/photos\/mon_oeil\/\">http:\/\/www.flickr.com\/photos\/mon_oeil\/<\/a> \/ <a rel=\"license\" href=\"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/2.0\/\">CC BY-NC-ND 2.0<\/a><\/div>\n<p>Vale, perfecto y esto que tiene que ver con una Web, pues que en la mayor\u00eda de servidores (Apache, Tomcat, IIS, WebLogic, Glassfish, etc&#8230;) cada petici\u00f3n de cliente se asigna a un thread o hijo y no se libera hasta que acaba de entregar todos los datos, y aqu\u00ed el problema lo tenemos en que el numero de hijos que generar\u00e1 un servidor est\u00e1 limitado por configuraci\u00f3n y si tenemos clientes con poco ancho de banda disponible descargando un objeto relativamente pesado, nos tendr\u00e1 bloqueados ese numero de threads y si tenemos en cuenta que la\u00a0mayor\u00eda\u00a0de navegadores lanzan hasta 8 peticiones simultaneas contra el mismo servidor, nos puede gastar hasta 8 hijos cada cliente! y si tenemos en cuenta que un Apache por defecto tiene un <a href=\"http:\/\/httpd.apache.org\/docs\/2.0\/mod\/mpm_common.html#maxclients\" target=\"_blank\">l\u00edmite de 256 conexiones concurrentes<\/a>, lo que nos da s\u00f3lo 32 usuarios concurrentes en el peor de los casos, tenemos una\u00a0panader\u00eda\u00a0con 32 personas tras el mostrador, por tanto si nuestros clientes terminan en medio segundo entre petici\u00f3n, proceso y descarga del resultado, podremos atender 64 clientes por segundo, pero si tarda 32 segundos, todos ellos en la descarga ya que van justos de ancho de banda, solo podremos atender a 1 solo usuario cada segundo y si lo nuestro <em>site<\/em> esta cargado de objetos voluminosos podemos estar hablando de algunos ordenes de magnitud de diferencia entre la capacidad &#8220;punta&#8221; de nuestro <em>site<\/em> trabajando con usuarios cercanos y con ancho de banda &#8220;ilimitado&#8221; (t\u00edpico\u00a0de las pruebas de <em>stress<\/em> hechas por el equipo de desarrollo) y la capacidad &#8220;valle&#8221; que serian usuarios muy lejanos con ancho de banda parecido a un dial-up.<\/p>\n<div class=\"separator\" style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/4.bp.blogspot.com\/_l_7jiNxwrPk\/S5Dbm-8mYxI\/AAAAAAAAAuM\/_G3YEzcZlAg\/s1600-h\/Apache-concurrencia.png\"><img loading=\"lazy\" src=\"http:\/\/4.bp.blogspot.com\/_l_7jiNxwrPk\/S5Dbm-8mYxI\/AAAAAAAAAuM\/_G3YEzcZlAg\/s640\/Apache-concurrencia.png\" border=\"0\" alt=\"\" width=\"640\" height=\"268\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><span style=\"font-size: small;\">N\u00famero de peticiones por segundo que soporta un Apache suponiendo los tama\u00f1os de objeto indicados y ADSL de 2 Mbits y GPRS de 144 Kbits \u00fatiles<\/span><\/div>\n<p>Dejo para otro post, las posibles soluciones, que las hay y muy variadas, desde cambiar el tipo de proceso del servidor, modos\u00a0as\u00edncronos, capas de cach\u00e9, etc&#8230;<\/p>\n<p>Saludos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy, al ir a comprar el pan me he dado cuenta que una panaderia no es tan diferente a la estructura que puede tener un servicio Web. Vamos a suponer una panaderia con dos personas tras el mostrador que van atendiendo a los clientes conforme la cola avanza, uno a uno y sin que nadie<a href=\"https:\/\/www.xpnti.net\/en\/puede-afectar-el-emule-de-los-usuarios-a-la-capacidad-total-de-mi-infraestructura\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,16,20],"tags":[],"_links":{"self":[{"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/posts\/189"}],"collection":[{"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":1,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":1967,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/posts\/189\/revisions\/1967"}],"wp:attachment":[{"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xpnti.net\/en\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}