come determinare i requisiti di hosting


23

Ci stiamo preparando a lanciare 2 siti di e-commerce utilizzando CE ver 1.9. Ogni sito inizierà con circa 10000 sku.

Quali sono le cose chiave che dobbiamo cercare da un host web ... sono importanti come le dimensioni del database, il numero di immagini, ecc.?

Ovviamente, anche la velocità di caricamento della pagina è molto importante.

Come possiamo selezionare al meglio un host adeguato?

Grazie


Acqua di benvenuto su MageOverflow. Sfortunatamente l'hosting di Magento è una cosa complessa e ci sono molte aziende là fuori che ti invitano a discutere con loro le tue esigenze. Non c'è modo di consigliarti nulla senza molte più informazioni. E con tutte le informazioni la domanda è troppo specifica per essere utile.
Fabian Blechschmidt,

@FabianBlechschmidt - Non credo sia una domanda duplicata di quella menzionata. Ed è una domanda abbastanza ragionevole a questo. Ho scritto una risposta abbastanza approfondita sui requisiti di dimensionamento (lo farò ingrossare anche con maggiori dettagli) e è abbastanza generico da essere una buona domanda di riferimento per il dimensionamento dell'architettura.
Ben Lessani - Sonassi,

Sei l'esperto, quindi ho votato per la riapertura :-)
Fabian Blechschmidt,

Risposte:


31

Disclaimer: Sonassi è un host Magento


TL; DR: un buon host ti dirà esattamente cosa ti serve (e lo giustifica). Non dovresti farlo tu stesso.

Quando un cliente si avvicina a noi, facciamo alcune domande per capire quali sono i requisiti attuali, i requisiti di picco e i requisiti futuri per il loro negozio. Quindi forniremo una raccomandazione su tale base.

Dato che ospitiamo migliaia di negozi Magento, abbiamo una comprensione abbastanza solida di esattamente quale infrastruttura è richiesta per un determinato insieme di requisiti dei clienti, quindi è abbastanza facile per noi dare una raccomandazione (e prevedere esattamente quali risorse verranno utilizzate) quando in realtà vanno in diretta.

Il dettaglio da notare qui è che, sebbene possiamo certamente dirti i requisiti per la nostra infrastruttura che gestisce MageStack - che quasi sicuramente non sarà esattamente la stessa di una configurazione altrove - quindi tienilo a mente.

Consenti a qualcun altro di dimensionare le tue esigenze

Negozio e catalogo

  1. Versione Magento?
  2. Numero di prodotti semplici nel catalogo?
  3. Numero di categorie nel catalogo?
  4. Numero di attributi nel catalogo?
  5. Numero di set di attributi nel catalogo?
  6. Numero di visualizzazioni negozio Magento (Ammin.> Sistema> Gestisci negozi)?
  7. Transazioni al giorno?
  8. Transazioni di picco in una sola ora?

Traffico e larghezza di banda

  1. Qual è il livello di visitatori unici giornalieri?
  2. Qual è la vetta più alta in una sola ora di visitatori unici?
  3. Numero di visualizzazioni di pagina per visitatore?
  4. Da quale paese provengono prevalentemente i visitatori?
  5. Prevedete il traffico del sito in crescita nei prossimi 12 mesi, se sì, di quanto?
  6. Gestisci campagne / newsletter ad alto traffico (che hanno un assorbimento significativo) su base regolare?
  7. Il tuo sito offre download digitali?
  8. Utilizzo attuale della larghezza di banda?
  9. È necessario un servizio di filtro dDOS?

Requisiti hardware

  1. Utilizzo attuale dello spazio su disco?
  2. È richiesta una memorizzazione dei log a lungo termine (conformità PCI-DSS)?
  3. È necessaria una memoria di backup off-site?
  4. Devi eseguire software specializzato / alternativo sul server?
  5. Le normative di conformità PCI dettano l'uso di un firewall hardware?
  6. Avete bisogno di una soluzione a tolleranza d'errore, altamente disponibile o bilanciata in base al carico?

Pratica di stadiazione / sviluppo

  1. Hai bisogno di un ambiente dedicato separato per la stadiazione / sviluppo?
  2. È necessario un ambiente "Test Live" per abbinare l'ambiente "Live" (per il test pre-live finale)?

bilancio

  1. Hai un budget mensile?

Quindi usando queste informazioni, inviale al tuo provider di hosting preferito e vedi cosa raccomandano.


Dimensionamento delle proprie esigenze

Come regola generale, è possibile

  1. Correlare direttamente i livelli di traffico ai requisiti della CPU
  2. Correlare direttamente i requisiti della CPU con i requisiti della RAM
  3. Correlare direttamente l'archiviazione MySQL ai requisiti della RAM

Selezione CPU

Prima di tutto ridimensiona il tuo traffico.

  • Un negozio demo Magento standard è in grado di fornire circa 230 pezzi unici per GHz, all'ora.
  • Un tipico negozio Web, con attività di utente amministratore, attività di sviluppo, aggiunta / eliminazione di prodotti può vedere questo degradare di circa il 100%, a 115 unità univoche per GHz, all'ora.
  • Un negozio con un modello mal costruito / pesante può ridurre ulteriormente la cifra di un altro 100-200%, a 50 unici per GHz, all'ora.

Usando questi numeri, puoi capire esattamente ciò di cui hai bisogno in termini di risorse della CPU.

Per esempio. Se hai 4.025 visitatori unici al giorno sostenuti, hai bisogno di risorse CPU totali a 28 GHz (es. 8 core a 3,5 GHz o 12 core a 2,3 GHz)

L'altro dettaglio importante è la velocità della CPU, è possibile avere:

  • Un tempo di caricamento della pagina lento e supporto di bassa concorrenza (CPU a bassa velocità di clock (GHz), pochi core)
  • Un tempo di caricamento della pagina veloce, ma supporto a bassa concorrenza (CPU ad alta velocità di clock (GHz), pochi core)
  • Un tempo di caricamento della pagina lento, ma supporto ad alta concorrenza (CPU a bassa velocità di clock (GHz), molti core)
  • Un tempo di caricamento rapido della pagina e un supporto ad alta concorrenza (CPU ad alta velocità di clock (GHz), molti core)

Selezione RAM

Per un server autonomo (la migliore configurazione per Magento), la regola qui è 2 GB RAM / CPU Core. Quindi, se hai 8 core, allora 16 GB di RAM dovrebbero essere il minimo.

Per capire di cosa hai bisogno, oltre a questo, devi tener conto delle dimensioni del tuo catalogo. In questo modo è facile, moltiplica il numero di visualizzazioni del negozio per la dimensione totale del catalogo.

Per esempio. Nel tuo caso, 1 visualizzazione negozio * 10.000 prodotti = 10.000

La nostra raccomandazione è,

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

Volete prendere il più alto dei due numeri (es. Dal core della CPU: rapporto RAM e requisiti di catalogo), o una combinazione sensata dei due.

Selezione HDD

Consente di chiarire qualcosa, per il negozio Magento medio (cioè <50.000 visitatori unici / giorno), Magento non è vincolato da I / O - gli SSD non renderanno il tuo negozio Magento più veloce; non migliorerà la concorrenza e non migliorerà il TTFB. Allo stesso modo, l'utilizzo di livelli RAID con striping (ad es. RAID10) non fornirà alcun vantaggio (poiché quasi tutti i file sul disco saranno comunque inferiori alle dimensioni dello stripe, quindi verrà utilizzato solo un singolo disco).

L'unica volta in cui l'archiviazione è un collo di bottiglia è sui servizi contesi (ad esempio cloud / VPS).

Tuttavia, ci sono sicuramente vantaggi nell'I / O veloce oltre l'operazione di memorizzazione stessa. Con gli SSD, le operazioni sui file (ad es. Stato Git / SVN, backup / ripristino, copia delle directory, ecc.) Sono notevolmente più veloci. La vita del tuo sviluppatore sarà sostanzialmente più semplice (con le attività di routine molto più veloci).

Si noti inoltre che non tutte le unità disco sono uguali.

  • Gli SSD economici / desktop funzioneranno più lentamente degli HDD convenzionali
  • Gli HDD economici / desktop funzioneranno più lentamente degli HDD aziendali
  • Gli HDD economici / desktop avranno basse percentuali di NRE (in genere 10 ^ 14) rispetto ai dischi aziendali (in genere 10 ^ 16)

Quindi assicurati di scegliere effettivamente le unità disco che meritano di essere in un server, vale a dire. Intel DC S3700.

Scegliere la capacità è semplice, hai solo bisogno di due comandi,

Per la radice del documento Magento

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

Per il database MySQL

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

.

Chi scegliere

Bene, dipende da te. Non posso dare una raccomandazione [anche se sarebbe ovvio :)] - ma puoi certamente esprimere la tua opinione,

  1. Se hanno l'hardware adatto ai tuoi requisiti minimi
  2. Se hanno una solida eredità / reputazione in Magento (cioè partecipano a siti come questo e dimostrano esperienza nel mondo reale)
  3. Se sono in grado di fornire una dimostrazione del tuo negozio, sul loro hosting (ad es. In modo da poter vedere esattamente come si comporta)
  4. Se riescono a rispondere a tutte le tue domande su Magento (es. Prova a testarle con le domande che hai avuto in passato e vedi come rispondono)
  5. Se il loro prezzo corrisponde al tuo budget
  6. Assicurati che il loro supporto corrisponda alle tue aspettative (es. Sei disposto a fare tu stesso tutta la dovuta diligenza prima di contattare l'assistenza, o hai un'aspettativa che possano eseguire il debug dei tuoi problemi Magento per tuo conto)
  7. Assicurati che lo scopo delle opere incluse corrisponda alle tue esigenze (es. Completamente gestito, bare metal ecc.)
  8. Se la soluzione è scalabile (ovvero è una piattaforma a server singolo, può essere scalata per essere una soluzione multi-server).
  9. Se la soluzione include tutto il software necessario per il tuo negozio Magento (ad es. ElasticSearch / Sphinx / SOLR, Redis / Memcache, Varnish ecc.)

C'è qualcosa da aggiungere qui, otterrai due tipi di host

  • Gestito (ad es. Dove il server è completamente configurato e curato)
  • Non gestito (ad es. Dove hai impostato tu stesso l'intero server)

Qual è il più appropriato per te dipende davvero dal tuo skillset. Secondo la mia sincera opinione, gli sviluppatori non sono amministratori di sistema - solo perché si può eseguire apt-get install nginx- non ti rende un amministratore di sistema esperto. Altrimenti qualsiasi proprietario di negozio che potrebbe usare Magento Connect potrebbe classificarsi come sviluppatore!

Comprendere il proprio ruolo (e limitazioni) come sviluppatore e lasciare che qualcuno con la giusta esperienza nella gestione del server ha un valore estremo. Chiunque può installare una serie di pacchetti, ma ottimizzare la configurazione del software, assicurando che sia stabile, privo di bug, sicuro e ad alte prestazioni è una cosa completamente diversa.

Consiglierei sempre e comunque l'intero percorso fai-da-te a persone che hanno una grande esperienza di configurazione del server Magento, che hanno già implementato migliaia di server, con configurazioni collaudate e stabili. Altrimenti, vai con un host Magento gestito che sa cosa stanno facendo e ti consente di fare il tuo lavoro ininterrottamente.


fonti:

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.