Tempo di risposta lungo dal server

Abbiamo un sito web di traffico elevato, al massimo ha 1000 utenti concorrenti e al minimo ha 100 utenti allo stesso tempo. In media ha 40,000 a 100,000 visite al giorno. Il problema a volte è caricato molto lento (abbiamo chiamato questa volta come tempo di disastro :)), In in quel momento quando cerchiamo di caricare il sito con Firefox , mostra l' waiting... (ho provato con molti fornitori in tutto il mondo)

Monitoremo il server a tempi di disastro , CPU load , Memory Usage sono normali. Anche il registro di query lento di MySQL non richiede alcuna query fino a 1 sec . Apache non ha errori. iotop non mostra nulla che provoca questo disastro.

  • Valori ottimali per le direttive ServerLimit, MaxClients, MaxRequestsPerChild
  • Scopri cosa provoca le connessioni CLOSE_WAIT con Apache & PHP e MySQL
  • Il problema di config di Apache mi sta guidando
  • il command iptables dalla documentazione RHEL per il ciabattino, fallisce in RHEL 7
  • linux + quale strumento può aiutare a identificare quali et nelle macchine Linux collegate a quale port nel switch cisco
  • Come monitorare un file di registro di Windows in tempo reale?
  • È molto interessante che i tempi di disastro e di picco non abbiano rapporti. A volte il disastro accade a 300 utenti concorrenti e un'altra volta diverso. Non riesco a trovare alcuna relazione tra loro.

    Come posso tracciare i pacchetti a tempo di disastro? Voglio sapere che questo disastro è il nostro fault di Data Center (come ad esempio a monte o firewall) o il nostro errore del server (come la configuration di Apache , l'applicazione web o qualsiasi altra cosa che non so).

    Per ulteriori informazioni basta aggiungere un commento, quindi modificare la mia domanda per fornire i dati necessari per rispondere.

  • Dare ad altri utenti l'accesso all'accesso ai log apache può provocare exploit di root - come funziona?
  • Fail2Ban sul server Apache per proteggere dagli attacchi DoS?
  • Buona risorsa per chroot Apache2 su Debian
  • Routing tra due sottoreti utilizzando una casella Linux con due NIC
  • Reindirizzamento da un TLD all'altro
  • L'authentication SVN su Apache (DAV) e Redmine non funziona
  • 2 Solutions collect form web for “Tempo di risposta lungo dal server”

    Il numero di utenti / visite concorrenti non ha nulla a che vedere con la capacità / performance del sistema – si tratta solo di connessioni simultanee e di quelle richieste.

    L'aggiunta di tempi di risposta alle richieste al tuo log del server potrebbe essere un inizio – se questi non riflettono il problema, allora il problema è probabile sulla networking. Vedo che non fai riferimento ai tuoi log del server web nella tua domanda: li hai controllati?

    Si considera che si dispone di elevati volumi di traffico e la tua domanda implica che si dispone solo di un singolo server. Perché? (più server potrebbero aggiungere complicazioni a questa specifica, come la distribuzione del carico, ma anche semplificerebbe gran parte della diagnostica, tuttavia è un programma senza fili per la prestazione e l'accessibilità).

    Il monitoraggio del numero di connessioni e del loro stato fornisce anche dati essenziali per la diagnosi del problema.

    Come posso tracciare i pacchetti a tempo di disastro?

    Con un programma di acquisizione di pacchetti – questo può essere eseguito ovunque dal client al server. Io uso il wireshark (disponibile su Linux, MSWindows e altri)

    Sarebbe stato utile se avevi indicato quale versione / MPM il tuo server sta utilizzando e quale OS in esecuzione.

    Se si utilizza Linux, è ansible utilizzare tcpdump , ad esempio:

     $ tcpdump dst port 80 

    Ma non credo che questo aiuterà molto. Cercherò di eliminare il maggior numero di variables ansible. Il mio primo pensiero è che potrebbe essere un problema di networking.

    Prova a creare un registro Apache con i tempi di risposta, come segue:

     LogFormat "\"%{%Y-%m-%d %H:%M:%S}t\" %V %m \"%U\" \"%q\" %{Content-Type}o %s %B %O %D" responsetime CustomLog "/var/log/apache2/responsetime.log" responsetime 

    Quindi provare a colpire il server web da una macchina / server sullo stesso interruttore.

    Se ciò sembra normale, prova a utilizzare qualcosa come il time wget http://localhost/index.html -q --output-document=/dev/null per farlo sulla stessa casella.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.