Domanda

Con il nuovo WordPress ed è nuove caratteristiche, sembra che WordPress è capace di molto di più di un semplice motore di blog. Ma quanto bene fa scala WordPress utilizzato da dire 10k -?> 100k utenti al giorno

Con che molti utenti una grande parte di esso sarà quello di avere una buona strategia di cache, ma quanto bene è WordPress sviluppato per aiutare, rendendo questo facile e vi darà il controllo necessario. Fx essere in grado di cache di parte di una pagina e rendere solo pezzi su misura degli utenti, maestro di sostegno / setup db schiavo e cose del genere?

È stato utile?

Soluzione

Chiaramente scale nulla così come file statici serviti da un server veloce web e qualsiasi CMS che deve capire cosa caricare e quindi caricare non si esibirà pure, WordPress o in altro modo. Uno dei problemi è il numero di query di database necessari per richiesta URL ei miei 2 anni di precedente esperienza che lavora esclusivamente con Drupal e ora 2+ anni con WordPress è che WordPress è molto meglio in quel reparto.

Detto questo, quasi nulla con una fonte di sta per scala "out-of-the-box" ; è tutta una questione che cosa si può fare in base alle esigenze di scalabilità crescere?

Sulla fascia bassa del "un sacco di traffico" ci sono grande caching plugin e integrazioni con CDN economici si può fare un buon lavoro con un budget non-IT budget e bassa hosting. Qui ci sono alcune altre domande e risposte alla revisione:

Ci sono opzioni per profiling per identificare i colli di bottiglia delle prestazioni :

Una volta che i colli di bottiglia sono identificati si può fare localizzata ottimizzazione con cose come il transitori API . Questa Q & A dà un esempio che può essere ottimizzata utilizzando Transitori API e mostra come:

Se si cosa davvero ottenere voglia di tirare fuori i grossi calibri è possibile configurare Memcached , HyperDB , Nginx e / o più a cose di velocità in su (a quanto pare quest'ultimo è davvero evolvendo in modo per ottenere incredibile scalabilità di WordPress):

E infine ci sono emergente webhosts specializzate nella prestazione WordPress-focalizzata , come WP motore , ZippyKid e altri:

la notizia buona è tutta delle scale molto bene ; dalla bassissima fine della libera e facile con la complessità tecnica e dei costi solo crescere il traffico cresce in modo significativo. Inizia la piccola con WordPress e sarà grea. Se il traffico fa crescere e si sta monetizzando ancora ragionevolmente bene lo troverete molto effetto dei costi di scala come avete bisogno.

Almeno IMO. :)

Altri suggerimenti

  1. Non aspettatevi molto da hosting condiviso - do not colpa WordPress per la lentezza, se siete su un host condiviso. host condivisi potrebbero stipare 1000s di conti in un unico server. Così si può trascorrere tutto il giorno l'ottimizzazione di un conto $ 10 / mese e non importa. Anche attenzione per parole d'ordine di marketing - solo perché si dice "nuvola" non significa che non stai condividendo un server con 100s o 1000s di persone.

  2. Non credo che i plugin di cache sono necessari a questo punto. Se si guarda il codice sorgente di WP, c'è già il caching avanzato cotta nel nucleo. Una cache della cache della cache della cache - attenzione, questo può essere controproducente.

  3. La cosa principale che un rallentamento è query MySQL lenti e WordPress out-of-the-box non dovrebbe dare problemi qui. Tuttavia, ho dovuto "limitare" il mio commento domande perché ho avuto 50.000 commenti. (È questo ancora risolto?) Inoltre, se si sta facendo qualcosa di atipico (come 1000s di categorie?), Che potrebbe essere un problema troppo.

  4. Io uso un Linode 512 con Nginx e "top" mostra PHP e nginx fare il loro lavoro in meno di 1 / 100th di un secondo per ogni richiesta. Quasi tutto il tempo di CPU è legato con MySQL. Si potrebbe servire 1 milione di pagine al mese con $ 20 Linode, ma una volta che si avvia l'aggiunta di plugin e le foto, penso che avrete bisogno di un "1 GB" Linode. Dal mio punto di vista, è più o meno lineare: Se pagine visualizzate doppio, solo il doppio della dimensione della vostra Linode.

Disclaimer: non funzionano per Linode.


Update (~ 2 anni dopo) dal momento che si desidera parti di cache di una pagina PHP, ecco una soluzione semplice che uso che è sorprendentemente veloce. Sono cache diverse parti / porzioni separate per pagina entro 1 / 100esimo di secondo. Sembra un ramdisk potrebbe rendere questo ancora più veloce, ma è molto veloce per le mie esigenze:

$cache_file = "./cache/portion-1". $since; // maybe round() this $since timestamp
$cache_life = 1000; // seconds to keep this cached
$filemtime = filemtime($cache_file);  // returns FALSE if file does not exist
if (!$filemtime or (time() - $filemtime >= $cache_life)) {

    // heavy lifting starts
    $output = 'Heavy!';
    // heavy lifting ends

    if (!file_put_contents($cache_file,$output,LOCK_EX)) { echo 'error'; } // save the cache    
    echo $output;

} else { 

    // load from cache
    $output = file_get_contents($cache_file); 
    echo $output;        
} 

Ci sono in ultima analisi, 3 cose che rallentano WordPress giù alla scala, e si riducono a questo:

  • Hosting stack - avete bisogno di un buon padrone di casa con l'ultima versione del software - PHP 7, Nginx, Vernice, Redis, fail2ban e PerconaDB sono tutte buone scelte
  • Non ci sono le scansioni di tabella - molti plugin sono scritti da programmatori dilettanti che non sanno nemmeno che cosa è una scansione di tabella. Due cose sono necessarie per evitare di scansioni della tabella - un indice utilizzabile e una query scritta in tal modo un che può utilizzare l'indice
  • No o qualche query SQL all'interno PHP loop - un po 'di codice del plugin è chiaramente solo stato testato su siti molto piccoli, e per un motivo o per un altro ciclo volontà attraverso ogni prodotto nel database ed effettuare una chiamata SQL fresco per ogni prodotto / post. Si vuole idealmente meno di 100 query SQL per pagina -. Suona come un sacco, ma non è realmente e con <100 si otterrà un TTFB di circa 200ms non memorizzata nella cache

Una volta che hai la precedenza sul posto, è quindi possibile aggiungere il caching - per esempio Vernice, CDN, il caching delle pagine, ecc.

Se avete bisogno di scalabilità orizzontale, è possibile creare un cluster utilizzando PerconaDB XtraDB per il database e Unison per i file. In questo modo, è possibile avere 1 nodo come il tuo wp-admin e cron corridore, e gli altri nodi che servono il traffico web dietro un bilanciatore di carico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top