Domanda

La discussione su Dual vs.Il Quadcore è vecchio quanto il Quadcore stesso e la risposta di solito è "dipende dal tuo scenario".Quindi qui lo scenario è un server Web (Windows 2003 (non sono sicuro se x32 o x64), 4 GB di RAM, IIS, ASP.net 3.0).

La mia impressione è che la CPU in un server Web non debba essere COSÌ veloce perché le richieste sono generalmente piuttosto leggere, quindi avere più core (più lenti) dovrebbe essere una scelta migliore poiché abbiamo ricevuto molte piccole richieste.

Ma poiché non ho molta esperienza con il bilanciamento del carico IIS e poiché non voglio spendere molti soldi solo per scoprire di aver fatto la scelta sbagliata, qualcuno che ha un po' più di esperienza può commentare se È meglio avere più core più lenti o meno più veloci?

È stato utile?

Soluzione

Per qualcosa come un server web, dividere i compiti di gestione di ciascuna connessione è (relativamente) facile.Dico che è sicuro affermare che i server web sono uno degli usi più comuni (e risolti) del codice parallelo.E poiché sei in grado di suddividere gran parte dell'elaborazione in più thread discreti, più core ti avvantaggiano.Questo è uno dei motivi principali per cui è persino possibile l’hosting condiviso.Se software server come IIS e Apache non potessero eseguire richieste in parallelo, significherebbe che ogni richiesta di pagina dovrebbe essere distribuita in coda... probabilmente rendendo i tempi di caricamento insopportabilmente lenti.

Questo è anche il motivo per cui i sistemi operativi server di fascia alta come Windows 2008 Server Enterprise supportano qualcosa come 64 core e 2 TB di RAM.Queste sono applicazioni che possono effettivamente trarre vantaggio da così tanti core.

Inoltre, poiché è probabile che ogni richiesta abbia un carico basso sulla CPU, probabilmente (per alcune applicazioni) puoi farla franca con core più lenti.Ma ovviamente avere ogni core più veloce può significare essere in grado di portare a termine ogni attività più rapidamente e, in teoria, gestire più attività e più richieste del server.

Altri suggerimenti

Usiamo Apache su Linux, che esegue il fork di un processo per gestire le richieste.Abbiamo scoperto che più core aiutano il nostro throughput, poiché riducono la latenza dei processi in attesa di essere inseriti nella coda di esecuzione.Non ho molta esperienza con IIS, ma immagino che lo stesso scenario si applichi al pool di thread.

Mark Harrison ha detto:

Non ho molta esperienza con IIS, ma immagino che lo stesso scenario si applichi al pool di thread.

In effetti, più core = più thread in esecuzione contemporaneamente.IIS è intrinsecamente multithread e ne trae facile vantaggio.

Più sono, meglio è.Man mano che i linguaggi di programmazione iniziano a diventare più complessi e astratti, maggiore sarà la potenza di elaborazione richiesta.

Atleat Jeff crede Quadcore è meglio.

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