Domanda

Sto giocando intorno con un server web, utilizzando una presa unix e sendmsg / recvmsg per passare il file di socket descrittore ad un nuovo processo server senza perdere alcuna richiesta. Durante il test con ab ho trovato che le connessioni client sarebbe indugiare, e ApacheBench (ab) mostrerebbe l'errore: "apr_poll: il timeout specificato è scaduto (70007)".

ho sospettato che ci fosse un cambiamento per l'indirizzo del descrittore di file che renderebbe inutile connessioni aperte, però assicurandosi che i collegamenti sono stati chiusi alla fine di ogni richiesta non ha fatto la differenza, un paio di richieste avrebbero Fail.

C'è qualche stranezza in più a livello di socket o è AB solo di essere strano? C'è qualcos'altro che dovrebbe prendere in considerazione?

Modifica:. Utilizzo di PHP come un client per effettuare richieste bancarelle anche durante il ciclo

È stato utile?

Soluzione

Ciò equivale a cercare di inviare un telefono su una linea telefonica. Non ha alcun senso. Una presa identifica fd il punto finale di un collegamento. Se un altro host vuole una connessione dovrà MKE proprio. Non si può dare una delle tue.

Altri suggerimenti

ha senso se si dispone di un server master che è in ascolto su un socket (accettare connessioni in ingresso) e si dispone di più processi di lavoro.

È possibile selezionare un adeguato operaio / libera (ad esempio, in base al numero di connessioni TCP ogni lavoratore utilizzando) e passare il descrittore della connessione in entrata dal master al lavoratore. Ciò consente di evitare il "tonante mandria" quando più lavoratori ascoltano sull'endpoint comune.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top