Come migliorare Windows Server 2008 R2 per gestire molte connessioni?


9

Sono passati alcuni giorni che sto cercando di capire come risolvere questo problema. Prima di tutto, gestisco un sito Web con una visualizzazione media giornaliera della pagina di 350.000. In precedenza, tutta la gestione degli annunci (tracciamento di clic e impressione che ogni annuncio è stato pubblicato) e i contenuti venivano offerti in un singolo server con le seguenti specifiche:

Server 1
Sistema operativo: Windows 2008 R2 64-Bit
CPU: Intel® Core ™ i5 - 4 core
RAM: 8 GB
Memoria: 2 dischi rigidi da 1 TB
Larghezza di banda: 10 TB al mese

Per migliorare la velocità del nostro sito Web, ho deciso di separare lo script di gestione degli annunci su un altro server dedicato perché abbiamo più di 15 inserzionisti e 30 inserzionisti per ogni pagina.

Server 2
Sistema operativo: Windows 2008 R2 64-Bit
CPU: Intel® Core ™ i5 - 4 core
RAM: 4 GB
Memoria: 2 dischi rigidi da 300 GB
Larghezza di banda: 10 TB al mese

Il problema
Il problema è che Server 1può gestire sia il contenuto che il sistema di annunci. Ora, che porto via il sistema di annunci e lo metto a Server 2. Server 2riesce a malapena a servire solo il sistema pubblicitario.

Test

  • Prima di tutto, ho spostato il 75% degli annunci in Server 2. E poi, eseguire un ping al server: ping -t xxxxx. [Ho eseguito il ping per 10 minuti e ha seguito un modello simile come di seguito]
Risposta da xxxxx byte = 32 tempo = 290 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 289 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 320 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 286 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 286 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 348 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 284 ms TTL = 116
  • Quindi, ho spostato il 100% degli annunci in Server 2. Quindi, eseguire nuovamente un ping al server. [Ho eseguito il ping per 10 minuti e ha seguito un modello simile come di seguito]
Risposta da xxxxx byte = 32 tempo = 290 ms TTL = 116
Tempo scaduto per la richiesta
Risposta da xxxxx byte = 32 tempo = 320 ms TTL = 116
Risposta da xxxxx byte = 32 tempo = 286 ms TTL = 116
Tempo scaduto per la richiesta
Tempo scaduto per la richiesta
Risposta da xxxxx byte = 32 tempo = 284 ms TTL = 116

tentativi

  1. Aumentare MaxUserPorteTcpNumConnection
  2. Riavvia il server
  3. Aumentare IIS Max InstanceseInstance MaxRequests

Risorsa server

  • Viene utilizzato solo il 10% -15% della connessione di rete
  • Viene utilizzato solo il 10% -15% della CPU
  • Viene utilizzato solo il 25% della memoria

3
Questa è una domanda ben formata secondo me e degna di voti positivi, ma ho ancora la sensazione che ci manchino alcuni indizi per aiutarci a risolvere l'enigma.
Ryan Ries,

@RyanRies, ti preghiamo di fornire al puntatore le informazioni mancanti necessarie per risolvere questo indovinello. In questo momento, ho il 75% degli annunci nel Server 2 e il 25% degli annunci nel Server 1. Ora funziona abbastanza bene, ma non riesco a passare completamente al Server 2.
Monkey D Luffy,

1
Sono d'accordo con @RyanRies: ci manca qualcosa. Vorrei esaminare il modo in cui è costruito il sistema di pubblicazione degli annunci: è possibile che ci sia una dipendenza tra i contenuti e i servizi di pubblicazione degli annunci che causa un ritardo eccessivo.
Stephane,

@Stephane no, ciò dovrebbe e non causerebbe ping persi. I ping non sono gestiti dal codice di pubblicazione degli annunci ma direttamente dallo stack TCP. Il che significa sostanzialmente che dovrebbero funzionare a meno che il Server non sia MOLTO sovraccarico. Questo sembra seriamente - secondo la mia risposta - come se la larghezza di banda non ci fosse. Prima del server
TomTom,

Alcune cose che mancano qui sono 1) cosa puoi cambiare / non cambiare nel tuo ambiente? 2) come sono configurati i server web dal disco? 3) i tempi di rete sono interni a dove ti trovi o si tratta di un server remoto? Se si tratta di un server remoto, quanto dista? 4) se hai bisogno di migliorare il tuo server, qual è la tua libertà di budget per aggiungere hardware al mix su tutta la linea 5) i log degli eventi generano errori? 6) Non vedo i risultati delle acquisizioni di perfmon al culmine del traffico 7) quali sono i tuoi numeri di visitatori unici? 8) hai filtrato il traffico spazzatura?
Techie Joe,

Risposte:


4

Bene, cominciamo. Questo è più lungo.

Hai completamente giudicato male i fatti qui sembra. Windows - anche il 2008 R2 obsoleto che dovresti aggiornare al più presto - è completamente in grado di gestire un volume che il mio telefono cellulare non ha problemi a gestire.

Quindi, ciò lascia 3 possibili aree di problemi:

  • Installazione. I driver potrebbero essere scadenti. Dato che gestisci un sistema operativo obsoleto, quanto sono buoni i tuoi driver? Aggiornali: questo PU cause causare tutti i tipi di problemi.

  • Rete. Questo sembra seriamente che "La mia auto è troppo lenta, per favore aiutami a renderla più veloce" quando il problema è che passi la maggior parte del tempo in un ingorgo e lamentele sul traffico non in movimento. Non è un problema di ottimizzazione dell'auto. Il traffico da 10 TB non dice nulla sulla congestione della rete. Guarda le statistiche del traffico di rete sulla tua scheda di rete e reagisci di conseguenza - se non vengono superate alla velocità che dovrebbero essere .... il tuo fornitore ha ipervenduto. Semplice.

  • Codice. Potresti aver bisogno di più RAM (il computer è impegnato a scambiare RAM invece di elaborarlo) o una codifica scadente sta usando tutta la tua CPU a un livello tale da rendere lo stack TCP a livello di kernel non reagire correttamente (sì, le risposte ICMP sono così basse). Questo sarebbe brutale, ma è un'altra strada da controllare. Potrebbe anche essere che si sovraccarichi i dischi accedendoli troppo spesso invece di memorizzare nella cache RAM, ma in qualche modo non riesco a vedere che porta a ping persi. Qualsiasi problema qui non è qualcosa che un amministratore può gestire, devi lanciare l'hardware, o prendere un bastone e colpire il programmatore con esso fino a quando non lo risolve (se è un errore di livello "stupido" che consuma le prestazioni - in caso contrario, è molto più difficile ottenere guadagni seri e potrebbe essere solo il tuo bisogno di hardware più robusto).

Non richiede assolutamente alcuna ottimizzazione di Windows: una finestra ben configurata può offrire molto di più. I miei file server regolarmente ß per periodi di tempo più lunghi - forniscono 4-6 gigabit da una configurazione relativamente disponibile.

Ora, tutti i numeri che dai non dicono nulla sul serio.

  • 10-15% di CPU utilizzata POTREBBE scambiare.
  • Il 25% di memoria utilizzata è probabilmente un buon indicatore ora si verifica lo scambio, ma potrebbe comunque significare che la CPU è in attesa di IO.
  • 10% -15% di rete utilizzata significa assolutamente nulla perché è solo il TUO lato della rete. Che dire di upstream? Che cosa succede se il provider mette 20 server con 1 gigabit su un uplink da 1 gigabit dal rack e questo trabocca come l'inferno?

L'ultimo punto è abbastanza probabile: i pacchetti rilasciati ne sono un buon indicatore. E questo non sarà visibile per te.

Il mio consiglio .... spegni qualsiasi cosa su un computer per un momento, fai un test di velocità dall'esterno con un file statico di grandi dimensioni. Scommetto che ti imbatterai in una congestione più in alto.

Qualunque cosa tu abbia fatto finora - maxuserport, tcpnumconnection, riavviare il server, giocare con le impostazioni IIS - è totalmente spento e non fa nulla nel posto migliore. Battere un martello su un'auto lenta non risolve mai nulla, specialmente se l'auto è lenta perché si trova in un ingorgo. Annullerei tutte le modifiche e inizierei ad analizzare il problema, non solo il tuo server. Al momento scommetterei sulla congestione della rete.


3
even the outdated 2008 R2 which you should update ASAP- Dai, TomTom, prendi una mano. Il 2008 R2 è ancora ben integrato nel supporto mainstream e molto LONTANO uscirà dal supporto esteso che è nel 2020 credo ...
Dan

4
"2008 R2 obsoleto che dovresti aggiornare al più presto": entrambi sono errati (2008R2 non è "obsoleto" e non dovrebbero essere aggiornati "solo perché") e non hanno senso nel contesto della risposta. Il resto fa poco per migliorare la tua risposta poiché non fornisce alcun passaggio utile per identificare il problema, tanto meno risolverlo, fornisce solo consigli generici (e solo leggermente sull'argomento) sulle prestazioni.
Stephane,

In realtà è perché indovina cosa è stato seriamente cambiato in seguito ß lo stack IP. La scalabilità è un punto. Quindi sì, nel contesto dato lo è. Gli aggiornamenti dovrebbero avvenire al più presto - perché indovina un po ', potresti non migliorare le tue cose nel tempo, la maggior parte delle aziende lo fanno. 2012 R2 è migliore di 2008 R2.
TomTom,

Usando speedtest.net, l'uplink e il downlink è di circa 100 Mbps.
Monkey D Luffy,

Esistono due software di dipendenza per il sistema di annunci: memcached e MySQL. Tiene traccia di tutte le impressioni e clicca nel memcached e aggiorna a MySQL ogni 10 minuti.
Monkey D Luffy,

0

I ping sono esterni ai due server? In tal caso, provare il ping dal server uno al server due. Se i risultati sono totalmente diversi da quando si esegue il ping esternamente, ciò indica che il problema potrebbe non essere dovuto al server due. Inoltre, dai un'occhiata al monitor delle risorse per la lunghezza della coda del disco per le unità e il tempo attivo - sono alcune ulteriori informazioni che possono evidenziare un problema.


L'ho già provato. Ho usato il Server 1 per eseguire il ping del Server 2 e il ping si interrompe ancora se inserisco più annunci.
Monkey D Luffy,

1
La connessione tra il server 1 e il server 2, è tramite il tuo hardware? O è l'interruttore del datacenter? Stavo solo cercando di determinare se quando esegui il ping stavi attraversando un hardware DC che avrebbe potuto causare congestione. Hai qualcosa in IIS / Windows che blocca dinamicamente le richieste? Nessuna protezione DOS che blocca le richieste legittime? Il sistema, è ASP.NET e il db è MySQL?
Ross Buggins,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.