mejorar el rendimiento de tcp a través de una red gigabit con un montón de conexiones y de alto tráfico de paquetes pequeños
yo estoy tratando de mejorar mi rendimiento de tcp a través de una 'red gigabit con un montón de conexiones y de alto tráfico de paquetes pequeños'. mi servidor de sistema operativo es ubuntu server 11.10 de 64 bits. hay alrededor de 50.000 (y creciente) de los clientes conectados a mi servidor a través de sockets tcp (todos en el mismo puerto). el 95% de mis paquetes tienen el tamaño de 1-150 bytes (tcp cabecera y la carga útil). el resto 5% variar desde 150 hasta 4096+ bytes. con la config por debajo de mi servidor puede manejar el tráfico de hasta 30 mbps (full duplex). puede usted por favor, consejos de mejores prácticas para sintonizar os para mis necesidades? mi /etc/sysctl.cong tiene este aspecto: kernel.pid\_max = 1000000 net.ipv4.ip\_local\_port\_range = 2500 65000 fs.file-max = 1000000 # net.core.netdev\_max\_backlog=3000 net.ipv4.tcp\_sack=0 # net.core.rmem\_max = 16777216 net.core.wmem\_max = 16777216 net.core.somaxconn = 2048 # net.ipv4.tcp\_rmem = 4096 87380 16777216 net.ipv4.tcp\_wmem = 4096 65536 16777216 # net.ipv4.tcp\_synack\_retries = 2 net.ipv4.tcp\_syncookies = 1 net.ipv4.tcp\_mem = 50576 64768 98152 # net.core.wmem\_default = 65536 net.core.rmem\_default = 65536 net.ipv4.tcp\_window\_scaling=1 # net.ipv4.tcp\_mem= 98304 131072 196608 # net.ipv4.tcp\_timestamps = 0 net.ipv4.tcp\_rfc1337 = 1 net.ipv4.ip\_forward = 0 net.ipv4.tcp\_congestion\_control=cubic net.ipv4.tcp\_tw\_recycle = 0 net.ipv4.tcp\_tw\_reuse = 0 # net.ipv4.tcp\_orphan\_retries = 1 net.ipv4.tcp\_fin\_timeout = 25 net.ipv4.tcp\_max\_orphans = 8192 aquí están mis límites: $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 193045 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1000000 pipe size (512 bytes, -p) 8 posix message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 1000000 [agregado] mi nic son las siguientes: $ dmesg | grep broad [ 2.473081] broadcom netxtreme ii 5771x 10gigabit ethernet driver bnx2x 1.62.12-0 (2011/03/20) [ 2.477808] bnx2x 0000:02:00.0: eth0: broadcom netxtreme ii bcm57711e xgb (a0) pci-e x4 5ghz (gen2) found at mem fb000000, irq 28, node addr d8:d3:85:bd:23:08 [ 2.482556] bnx2x 0000:02:00.1: eth1: broadcom netxtreme ii bcm57711e xgb (a0) pci-e x4 5ghz (gen2) found at mem fa000000, irq 40, node addr d8:d3:85:bd:23:0c [añadido 2] ethtool -k eth0 offload parameters for eth0: rx-checksumming: on tx-checksumming: on scatter-gather: on tcp-segmentation-offload: on udp-fragmentation-offload: off generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: on rx-vlan-offload: on tx-vlan-offload: on ntuple-filters: off receive-hashing: off [añadido 3] sudo ethtool -s eth0|grep -vw 0 nic statistics: [1]: rx\_bytes: 17521104292 [1]: rx\_ucast\_packets: 118326392 [1]: tx\_bytes: 35351475694 [1]: tx\_ucast\_packets: 191723897 [2]: rx\_bytes: 16569945203 [2]: rx\_ucast\_packets: 114055437 [2]: tx\_bytes: 36748975961 [2]: tx\_ucast\_packets: 194800859 [3]: rx\_bytes: 16222309010 [3]: rx\_ucast\_packets: 109397802 [3]: tx\_bytes: 36034786682 [3]: tx\_ucast\_packets: 198238209 [4]: rx\_bytes: 14884911384 [4]: rx\_ucast\_packets: 104081414 [4]: rx\_discards: 5828 [4]: rx\_csum\_offload\_errors: 1 [4]: tx\_bytes: 35663361789 [4]: tx\_ucast\_packets: 194024824 [5]: rx\_bytes: 16465075461 [5]: rx\_ucast\_packets: 110637200 [5]: tx\_bytes: 43720432434 [5]: tx\_ucast\_packets: 202041894 [6]: rx\_bytes: 16788706505 [6]: rx\_ucast\_packets: 113123182 [6]: tx\_bytes: 38443961940 [6]: tx\_ucast\_packets: 202415075 [7]: rx\_bytes: 16287423304 [7]: rx\_ucast\_packets: 110369475 [7]: rx\_csum\_offload\_errors: 1 [7]: tx\_bytes: 35104168638 [7]: tx\_ucast\_packets: 184905201 [8]: rx\_bytes: 12689721791 [8]: rx\_ucast\_packets: 87616037 [8]: rx\_discards: 2638 [8]: tx\_bytes: 36133395431 [8]: tx\_ucast\_packets: 196547264 [9]: rx\_bytes: 15007548011 [9]: rx\_ucast\_packets: 98183525 [9]: rx\_csum\_offload\_errors: 1 [9]: tx\_bytes: 34871314517 [9]: tx\_ucast\_packets: 188532637 [9]: tx\_mcast\_packets: 12 [10]: rx\_bytes: 12112044826 [10]: rx\_ucast\_packets: 84335465 [10]: rx\_discards: 2494 [10]: tx\_bytes: 36562151913 [10]: tx\_ucast\_packets: 195658548 [11]: rx\_bytes: 12873153712 [11]: rx\_ucast\_packets: 89305791 [11]: rx\_discards: 2990 [11]: tx\_bytes: 36348541675 [11]: tx\_ucast\_packets: 194155226 [12]: rx\_bytes: 12768100958 [12]: rx\_ucast\_packets: 89350917 [12]: rx\_discards: 2667 [12]: tx\_bytes: 35730240389 [12]: tx\_ucast\_packets: 192254480 [13]: rx\_bytes: 14533227468 [13]: rx\_ucast\_packets: 98139795 [13]: tx\_bytes: 35954232494 [13]: tx\_ucast\_packets: 194573612 [13]: tx\_bcast\_packets: 2 [14]: rx\_bytes: 13258647069 [14]: rx\_ucast\_packets: 92856762 [14]: rx\_discards: 3509 [14]: rx\_csum\_offload\_errors: 1 [14]: tx\_bytes: 35663586641 [14]: tx\_ucast\_packets: 189661305 rx\_bytes: 226125043936 rx\_ucast\_packets: 1536428109 rx\_bcast\_packets: 351 rx\_discards: 20126 rx\_filtered\_packets: 8694 rx\_csum\_offload\_errors: 11 tx\_bytes: 548442367057 tx\_ucast\_packets: 2915571846 tx\_mcast\_packets: 12 tx\_bcast\_packets: 2 tx\_64\_byte\_packets: 35417154 tx\_65\_to\_127\_byte\_packets: 2006984660 tx\_128\_to\_255\_byte\_packets: 373733514 tx\_256\_to\_511\_byte\_packets: 378121090 tx\_512\_to\_1023\_byte\_packets: 77643490 tx\_1024\_to\_1522\_byte\_packets: 43669214 tx\_pause\_frames: 228 un poco de información acerca de saco: cuando a su vez tcp sack?
el problema podría ser que usted está recibiendo demasiadas interrupciones en la tarjeta de red. si el ancho de banda no es el problema, la frecuencia es el problema: suba enviar/recibir búferes en la tarjeta de red ethtool-g eth0 se mostrará la configuración actual (256 o 512 entradas). usted puede probablemente plantear estas a 1024, 2048 o 3172. más probablemente no tenga sentido. esto es sólo un búfer de anillo que solo se llena si el servidor no es capaz de procesar los paquetes entrantes con la suficiente rapidez. si el buffer empieza a llenar, el control de flujo es un medio adicional para decirle al router o switch a disminuir: activar el control de flujo en/saliente en el servidor y el switch/router los puertos que se encuentra conectada. ethtool-eth0 se propably mostrar: pause parameters for eth0: autonegotiate: on rx: on tx: on compruebe el archivo /var/log/messages para la configuración actual de eth0. comprobar algo como: eth0: el enlace es de hasta 1000 mbps, full duplex, control de flujo de tx y rx si usted no ve tx y rx de sus administradores de red tienen que ajustar los valores en el switch/router. en cisco que es recibir/transmitir de control de flujo. cuidado: el cambio de estos valores va a traer a su enlace de abajo y arriba por un tiempo muy corto (menos de 1s). si todo esto no ayuda - usted también puede reducir la velocidad de la tarjeta de red de 100 mbit (hacer lo mismo en el switch/router-puertos) ethtool-s eth0 autoneg off && ethtool-s eth0 velocidad 100 pero en tu caso yo diría - elevar los búferes de recepción en la nic búfer de anillo.
usando wifi puede buscar alguna señal wifi cerca de tu casa, generalmente hoteles, restaurantes o bares tienen wifi para sus clientes y si estas cerca puedes conectarte a alguna red de esas, pero no sera de mucha velocidad, lo mas normal es 128k o 256k. entiendo lo que dices, pero no has identificado tan solo el recurso que se esta consumiendo. te lo digo porque yo soy especialista en performance y es la manera de encontrar el root cause de un problema de rendimiento. si realmente estas seguro que alguna transacciós esta consumiendo gran parte de r… prueba bajar los drivers de internet <p>creo que está simplificando demasiado los tipos de alojamiento que podría obtener. aquí están, para qué son buenos y para qué no son tan buenos:</p><p><strong>alojamiento compartido</strong></p><p>estás en un servidor con potencialmente cientos de otras personas. existen límites predefinidos, como la cantidad de espacio en disco/bases de datos que puede tener y la cantidad de datos que puede transferir por mes. este es el más barato de todos, a veces tan poco como $ 3/mes, pero tenga cuidado: tan pronto como su sitio comience a consumir más que los recursos mínimos, se le suspenderá y se le pedirá que actualice.</p><p>además, cosas como php/ssh/etc están configuradas en modo 'paranoico'. es posible que no tenga acceso a ciertas funciones y debe depender de su host para instalar las cosas que pueda necesitar (es decir, subversion/mercurial).</p><p>esto es bueno para las personas que desean alojar un sitio de tipo de tarjeta personal o de negocios. un brote de esto se llama <strong>alojamiento de revendedor</strong>, lo que le brinda la capacidad de crear cuentas de alojamiento adicionales para sus clientes.</p><p>tenga en cuenta que esto no es compatible con pci/dss/hipaa/etc.</p><p><strong>servidor virtual dedicado</strong></p><p>su sitio obtiene su propia vista única de un servidor compartido. puede configurar sus servicios y software como lo haría en un servidor dedicado, sin embargo, no hay garantías reales de recursos. "malos vecinos" es todo lo que se necesita para arrastrar su sitio.</p><p>por lo general, recomiendo esto a los desarrolladores que necesitan una caja de arena que les permita configurar las cosas de la manera que quieran.</p><p>nuevamente, no cumple con pci/dss/hipaa/etc</p><p><strong>servidor privado virtual</strong></p><p>esto es, para todos los efectos, un servidor dedicado que viene con una cierta cantidad de recursos garantizados. serás el súper usuario, puedes hacer lo que quieras. dependiendo de la plataforma, sus límites de recursos pueden 'explotar' en ocasiones para hacer frente a los picos de uso. desafortunadamente, esto también significa que sus recursos se ven afectados si varios vecinos también necesitan "explotar".</p><p>recomiendo ir con un proveedor de xen si sigue esta ruta, nunca tendrá menos de lo que paga.</p><p>recomiendo que todos los sitios nuevos que anticipan cualquier tipo de tráfico comiencen con nada menos que un vps.</p><p>esto puede ser, dependiendo del tipo de hipervisor y almacenamiento utilizado, compatible con pci/etc.</p><p><strong>servidor totalmente dedicado</strong></p><p>exactamente como se lee, un servidor que es tuyo y solo tuyo. puede alquilar uno mensualmente o comprar uno y pagar para que se ubique en un centro de datos. recomiendo ir con la opción de alquiler primero, requiere menos inversión para ampliar si es necesario. cuando los ingresos lo permiten, siempre puede comprar sus propios servidores. para ese momento, tendrá una comprensión muy firme del tipo de hardware que necesita.</p><p>recomiendo esto para las empresas de nueva creación que pueden permitirse unos pocos cientos de meses de alojamiento, o cualquiera que tenga que cumplir con los estándares de seguridad. si almacena información cc de cualquier tipo, o cualquier tipo de información médica/de salud, realmente querrá tener acceso exclusivo a su propio hardware.</p><p><strong>alojamiento en la nube</strong></p><p>he creado varias plataformas en la nube para algunas grandes empresas de alojamiento web. soy prolífico en el desarrollo de xen e incluso no puedo decirle en una oración clara y concisa qué se supone que significa 'nube' cuando se trata de iaas (infraestructura como servicio).</p><p>lo que está obteniendo con la mayoría de los proveedores de la nube es una o más máquinas virtuales a las que se les puede asignar más memoria o almacenamiento según lo exija el tráfico, luego vuelvan a la configuración 'inactiva' cuando el tráfico disminuya. además, algunos ofrecen la capacidad de hacer clones de una sola instancia y conectarlos mediante un equilibrador de carga (generalmente basado en software).</p><p>lo que hay que tener en cuenta aquí es mega facturas si su sitio se ve afectado. hay muchos casos en los que el algoritmo que 'escala automáticamente' funciona más a favor de la empresa de hosting y menos a favor de su billetera. si obtiene ese tipo de alojamiento, asegúrese de que el interruptor permanezca pegado al manual. en muchos casos, solo encender un caché es suficiente para satisfacer una mayor demanda de tráfico.</p><p>amazon y otros han publicado claramente que sus ofertas <strong>no</strong> cumplen con las pautas establecidas por estándares de seguridad como pci/dss o estándares federales como hipaa/hitech. esto no es tanto una advertencia de usar un hipervisor, es una advertencia de usar una red de almacenamiento compartida.</p><p><strong>en resumen:</strong></p><p>el tipo de alojamiento que obtienes es realmente incidental, lo que importa más es cómo planeas tu red. por ejemplo, puede tener static.domain.com utilizando un servidor http liviano que tiene la responsabilidad de servir solo imágenes y medios, reduciendo drásticamente la carga en su servidor de producción.</p><p>además, el almacenamiento en caché inteligente de páginas dinámicas (y/o) las consultas que intervienen para hacerlas le permiten exprimir considerablemente más de cualquier plataforma.</p><p>obtendría algunos servidores vps, o tal vez un servidor dedicado y un par de servidores vps. la otra cosa que no puedo hacer es dividir mi dns, si mi dominio no se puede resolver ... todo el almacenamiento en caché y el ajuste fino en el mundo no ayudarán.</p><p>es realmente difícil decir qué sería 'mejor' para usted, no estoy seguro de la complejidad y las necesidades de su proyecto. sin embargo, con suerte, lo anterior le brinda una idea de los pros y los contras, sea cual sea el camino que decida.</p> Eso es el reuso si usas una conexion banda ancha esa es la hora pico donde el trafico se hace mas leto por que hay mayor de conexiones simultaneas en el canal esto es por que se comparte una canal para varias personas de tu alrededores y entre mas contraten serca de tu casa con el mismo provedor la señal se puede ver mas afectada. <p>mi comprensión de la fuerza del protocolo de seguridad inalámbrica, comenzando con el más seguro:</p><ul> <li>wpa2-aes</li> <li>wpa2-tkip</li> <li>wpa</li> <li>wep</li> </ul><p>busque craqueo de wep y encontrará muchos tutoriales sobre cómo descifrarlo en 10 minutos en pc comunes. wpa es significativamente más difícil de descifrar, pero cada versión tiene sus puntos débiles. wpa2-aes se considera de primera línea lo último que escuché y es compatible con casi todos los enrutadores y sistemas operativos modernos).</p><p>vea estos <a href="http://www.grc.com/securitynow.htm">¡seguridad ahora!</a> episodios pasados ​​para obtener explicaciones detalladas:</p><ul> <li>episodio 170, el truco de tkip</li> <li>episodio 89, wep aún más gravemente roto</li> </ul> Al conectarse con el proveedor de internet se ejecuta una aplicación que se llama conexión, verifica si esta transmitiendo y recibiendo, si no es así, entonces, deberías verificar la velocidad de conexión, aun que a veces hay drivers que parece que están bien instalados pero no es así, necesitaría que me mandaras la siguiente información:  
Modelo del modem  
Version de windows, y si es computadora de marca o no. buenas tardes te adjunto unas imagenes que me parecen resolver tu pregunta<br/><img src='http://static.yoreparo.com/imagenes/subidas/20141122020807.png' alt='' /><br/><img src='http://static.yoreparo.com/imagenes/subidas/outdoor-design.jpg' alt='' /><br/><br/><br/>si lo que deseas es redes inalambricas chevere porque el otro dispositivo que nombras es :<br/><br/><strong>access point tp-link tl-wa5210g cpe externo wifi 500mw 12dbi poe</strong><br/>equipo access point de alta potencia 500mw para redes de exterior.<br/><br/>equipo access point<br/>500 mw de potencia<br/>antena 12dbi de ganancia<br/>antena direccional<br/>alimentador de energia poe<br/>marca tp-link<br/>ieee 802.11g, ieee 802.11b , 11n compatible<br/>seguridad inal&aacute;mbrica ssid activar / desactivar filtro de direcci&oacute;n mac 64/128/152-bit wep encriptado wpa/wpa2/wpa-psk/wpa2-psk (aes / tkip)<br/>est&aacute;ndares inal&aacute;mbricos ieee 802.11g, ieee 802.11b<br/>rango inal&aacute;mbrico 15 kil&oacute;metros con antena integrada m&aacute;xima de 50km (se requiere una ganancia alta de la antena direccional). ajuste la distancia de transmisi&oacute;n a larga distancia, hasta 50 km<br/>requisitos del sistema microsoft windows 98se, nt, 2000, xp, vista&trade; or windows 7, mac os, netware, unix or linux.<br/>antena horizontal: 60 &deg; vertical: 30 &deg;<br/>frecuencia wifi 2.4-2.4835ghz<br/>velocidad de se&ntilde;al 11g: hasta 54mbps (din&aacute;mico)<br/>carcasa impermeable y un rayo de terminales para protecci&oacute;n integrada<br/>ap router - ap cliente router - ap bridge - puente - repetidor.<br/><br/>en teoria si funcionan.<br/><br/><br/>saludos Si le gustan las cosas que se ven bien, como las clases de POCO, y también quiere la velocidad de MicroORM, entonces debe comprobar, [ServiceStack OrmLite](https://github.com/ServiceStack/ServiceStack.OrmLite) . Incluso puedes usar Massive o Dapper. Solo un uso de eso será diferente. 

 Pero una cosa es segura, Code será menos y la velocidad es como cualquier otra cosa. Avíseme si necesita algún fragmento de código. Simplemente ve a través de los sitios de github, eso te ayudará. Para que tu red básica funcione necesitas entrar a las propiedades de red (el icono de Red en el panel de control) y en la pestaña Configuración debes tener o agregar como mínimo 4 cosas:  
Cliente:Cliente para redes Microsoft  
Protocolo: NetBEUI  
Servicio: Compartir impresoras y archivos para redes Microsoft.  
Adaptador: tu tarjeta de red.  
En la pestaña Identificación ponle un nombre a cada PC y un mismo Grupo para ambas.  
Luego se reiniciará el sistema y cargará en Red.  
Cuando venga la internet, dependerá de cual sea tu medio de acceso a ella para hacer que ambas naveguen, ya nos avisarás.  
Suerte.