Su publicación no tiene suficiente información para abordar por qué su programa no está funcionando como esperaba, pero creo que solo vale la pena responder esta pregunta:
En su primera prueba, realizó una sola solicitud (-n 1
). En su segunda prueba, realizó 100 solicitudes en vuelo simultáneamente (-c 100 -n 100
).
Usted menciona que su programa se comunica con una base de datos externa, su programa tiene que esperar a que ese recurso responda. ¿Entiende cómo funciona su base de datos cuando le envía 1000 solicitudes simultáneamente? No hiciste mención de esto. Go ciertamente puede manejar cientos de solicitudes simultáneas por segundo sin sudar, pero depende de lo que esté haciendo y cómo lo esté haciendo. Si su programa no puede completar las solicitudes tan rápido como llegan, se acumularán, lo que provocará una alta latencia.
Ninguna de las pruebas de las que nos habló es útil para comprender cómo funciona su servidor en circunstancias "normales", que dijo que serían "miles de solicitudes por día" (lo cual no es muy específico, pero entenderé que significa, "unos pocos segundos"). Entonces sería mucho más interesante mirar -c 4 -n 1000
, o algo que ejercite el servidor durante un período de tiempo más largo, con una cantidad de solicitudes simultáneas que se parece más a lo que espera obtener.