Siteground miglior hosting WordPress ? Il caso reale di un nostro cliente che ha scelto le performance.

E’ facile e frequente imbattersi in moltissime recensioni che indicano Siteground come miglior hosting wordpress. Questo è derivato sicuramente dall’ottima fama che un big del settore è riuscito a crearsi nell’ambiente di sviluppatori WordPress e dell’effettiva bontà delle loro soluzioni hosting.

Conosciamo personalmente tanti loro clienti con cui abitualmente svolgiamo servizi di consulenza e di sviluppo, e occasionalmente forniamo loro servizi di ottimizzazione spinta decidendo di portarli sui nostri sistemi e fornendo dunque un servizio più performante.

Vogliamo portare l’esempio di un nostro nuovo cliente che avendo sottoscritto un piano hosting di tipo GoGeek con Siteground al costo di circa 25€/mese si trova ad avere il sito disabilitato per la grossa affluenza di visitatori che ha reso il server sovraccarico.

Questo è quello che viene comunicato dall’assistenza che intanto ha provveduto a mettere offline il sito e dunque creato un danno in termini di mancati introiti al cliente :

siteground-hosting
Siamo pertanto stati contattati dal cliente che avendo avuto notizia da un collega delle ottimizzazioni su siti di blogging WordPress based, ha voluto testare con mano i nostri servizi e l’ottimizzazione di performance che siamo riusciti a dare utilizzando i tool più in voga nel settore hosting, spaziando per PHP-FPM, Zend OpCache, Nginx, Memcached e Varnish con un sapiente uso e tuning di svariati plugin WP per aumentare il punteggio Pagespeed e YSlow, nonchè un reverse proxy a livello CDN tramite Incapsula che ci ha permesso di risparmiare banda e diminuire i tempi di caricamento di contenuti statici come le immagini.

Attualmente su www.techzoom.it (il sito migrato sui nostri sistemi)riusciamo a reggere oltre il quadruplo delle richieste che hanno creato problemi a Siteground, a costi del tutto comparabili se consideriamo un’assistenza managed e una supervisione costante che danno sicuramente un valore aggiunto al business del cliente.

Abbiamo voluto discutere e documentare questo caso per portare a conoscenza della nostra realtà di hosting alternativa a Siteground, GoDaddy o Aruba ad esempio, realtà sicuramente più piccola e moderata ma con un know how tale da essere più che adeguato alle aspettative dei clienti più esigenti e delle situazioni più dispendiose.

Confronto tra Twitter e Facebook. Come scrivere sui due social network popolari.

confronto-facebook-twitter

In questo post cercheremo di comprendere le differenze tra le “fuoriserie” dei social network: Twitter e Facebook.

Prima di utilizzare un servizio, o ancor peggio pagare per esso, bisognerebbe sempre fare qualche riflessione. Certo, non esistono domande stupide, che rimanga scolpito nella pietra, ma le stesse dovrebbero servire a raccogliere informazioni, a definire meglio obiettivi e linee guida, non a esternare pensieri o “sentiti dire”, tanto meno a mostrare insolenza o supposizione.

Non basta un punto interrogativo, insomma, per avere una risposta.

Eppure quel tizio non ne voleva sapere e con candore mi ha chiesto: “Ok. Quindi? Cos’è meglio tra Twitter e Facebook? Dove mi devo “segnare”?

Va bene. Ho appena detto che non esistono domande stupide quindi esprimerò il mio punto di vista.

I concetti alla base di Twitter e Facebook

Facebook e Twitter sono due social network molto diffusi e gratuiti.

Entrambi permettono di pubblicare, tramite l’utilizzo di una pagina personale, informazioni che vogliamo far pervenire ad altri. Entrambi consentono inoltre di sviluppare relazioni e connessioni con altre persone (contatti) presenti sulla rete.

Questo primo livello di spiegazione non è però sufficiente a rispondere: la definizione è generica e riguarda tutti i social network.

Quello che è interessante è il concetto che sta alla base di Twitter e Facebook:

In Facebook, le connessioni che si sviluppano sono generalmente simmetriche, nel senso che si tende a ricercare la persona. Si sviluppa la rete di contatti perchè solo chi ci conosce può essere interessato a leggere di noi, a vedere/capire quello che facciamo. Facebook permette di avere una finestra sui nostri amici, sulle persone che ci interessano e di seguirle in quello che fanno. Emotivamente potrei dire che è un po’ come uscire per strada e incontrare qualcuno lungo la via che conosci: ti può fare piacere incontrarlo, salutarlo velocemente o fermarti a parlare del più e del meno, etc.

Questo tipo di comportamento sposta l’attenzione di Facebook sulle persone, e non certo sul contenuto.

Twitter parte da presupposti diversi: innanzitutto ogni messaggio è lungo al massimo 140 caratteri. Meno di un SMS. Twitter è molto più essenziale di Facebook, molto più orientato all’essenza della notizia. A questo si aggiunge il fatto che le connessioni sviluppate in Twitter sono asimmetriche. Ognuno di noi può seguire persone (concetto di ‘followees’) senza che queste ci seguano a loro volta. Troveremo persone interessate a noi e disposte a seguirci (concetto di ‘followers’) solo se, a nostra volta, renderemo disponibili notizie utili a loro. Su Twitter le persone si seguono perchè condividono notizie o informazioni utili e interessanti.

Twitter-vs-Facebook

Rifacendomi alla stessa metafora di cui sopra potrei dire che, passeggiando per la via, invece di soffermarmi a salutare gli amici andassi a cercare persone impegnate in comizi gratuiti. Vado, ascolto quello che mi interessa (se mi interessa) e tanti saluti. Su Twitter il centro del mondo è l’informazione e questo lo rende uno strumento di inestimabile valore.

Mi rendo conto di aver semplificato il tutto, ma lascio a voi il piacere di scoprire le infinite possibilità e i dettagli tecnici di questi strumenti.

Per quanto riguarda la domanda iniziale… Beh. Io li uso entrambi, visto che fanno cose così diverse.

 

Facebook Big Like Button Popup in Overlay

facebook-giant-like-button-popup

Avendo avuto la necessità di sviluppare un popup a forma di Like Facebook per invitare gli utenti ad interagire e diventare Fan di una pagina Facebook, abbiamo pubblicato il codice sorgente al fine di mostrare un esempio di utilizzo e sopratutto una demo già funzionante su JSFiddle.

Il popup in questione fa uso del framework Jquery e un ulteriore plugin per la gestione dei cookie : https://github.com/carhartl/jquery-cookie

Il principio di funzionamento è molto semplice :

Si controlla se esista un cookie “facebookbiglike”, se è uguale ad 1 allora si nasconde l’elemento padre del popup con .hide() di Jquery, altrimenti viene mostrato normalmente.

Al click del pulsante di chiusura, viene chiamata la function close_fb(), che calcola un tempo di validità del cookie secondo la seguente formula : date.setTime(date.getTime() + (2 * 60 * 1000)); laddove il 2 rappresenta i minuti di validità del cookie. Settando ad esempio 120 al posto di 2, il plugin non riapparirà per 120 minuti (2 ore) dalla chiusura del popup.

Per il resto vale sempre il buon senso, derivato da una buona conoscenza sull’utilizzo di JSFiddle e l’integrazione sul vostro sito di qualsiasi tipo, sia esso WordPress, che altro.

Per chi fosse interessato avere una funzionalità simile ma non avesse capacità tecniche / tempo / voglia di lavorare sul codice per effettuarne l’integrazione, potete chiedere il nostro aiuto per l’integrazione, normalmente offerto al costo scontato di un’ora di consulenza, ovvero 35€.

Vai alla demo e al codice sorgente.

For English Readers :

Having had the need to develop a popup shaped Like Facebook to invite users to interact and become fans of a Facebook page, we published the source code in order to show an example of use and above all a demo already working on JSFiddle.

The popup in question makes use of the jQuery framework and an additional plugin for handling cookies: https://github.com/carhartl/jquery-cookie

The operating principle is very simple:

It checks if there is a cookie “facebookbiglike”, if it is equal to 1 then hides the parent of the popup with .hide () of Jquery, otherwise it is shown normally.

At the click of the close button, is called the function close_fb (), which calculates a time of validity of the cookie according to the following formula: date.setTime (Date.getTime () + (2 * 60 * 1000)); where 2 represents the minutes of validity of the cookie. By setting such as 120 instead of 2, the plugin will not reappear for 120 minutes (2 hours) after the close of the popup.

For the rest it is always common sense, derived from a good knowledge about using JSFiddle and integration on your site of any kind, be it WordPress, what else.

For those interested in having a similar feature but it had the technical ability / time / desire to work on the code to carry out the integration, you can ask for our help in integration, normally offered at the discounted cost of one hour of counseling, € 35.

Go to demo and source code.

Cookie Law : la nuova legge europea sui Cookie. Come essere in regola con il tuo sito web.

Entro il 3 giugno 2015, i gestori di siti internet comunitari devono attuare le disposizioni della legge, detta Cookie Law, approvata con decreto legislativo 69/2012 e 70/2012. Sanzioni amministrative che vanno da 6.000 a 120.000€ (nei casi più gravi) per chi non rispetta le indicazioni europee.

eu-cookie-law

Prima di entrare nel merito della Cookie Law (o Cookie Policy) vediamo la breve storia dei cookie

Cookies? Cosa sono e a cosa servono

Nel linguaggio informatico la parola cookie non evoca biscotti da forno ma indica tutti quei piccoli file attraverso cui i siti internet riconoscono gli utenti o memorizzano informazioni relative alla ricerca sul web. In altri termini, i cookie sono strumenti validi nella raccolta di informazioni, durante la navigazione, delle persone per proporre azioni di marketing diretto: per esempio visualizzando pubblicità personalizzate in base a percorsi di navigazione.

La normativa Cookie Law in Europa ed in Italia

Fino a qualche tempo fa i cookie venivano usati inconsapevolmente dalla quasi totalità dei navigatori ma dal 2009 tutto è cambiato: l’Unione Europea, attraverso la direttiva numero 136 (testo completo della direttiva 2009/136/CE), ha imposto l’ottenimento del consenso preventivo dell’interessato nel caso di raccolta di informazioni sensibili attraverso i cookie.

In Italia la direttiva è stata recepita dal 2012: modificando il Codice in materia di protezione dei dati personali il Garante della Privacy si è assunto il compito di vigilare e di definire l’acquisizione del consenso.

Il 4 giugno 2014 il Garante ha emanato un provvedimento generale introducendo le modalità per tradurre online la Cookie Law fornendo indicazioni su come raccogliere i consensi in modo da rispettare la legge.

Cosa cambia la Cookie Law in sintesi?

La legge indica due tipologie di cookie:

  • i cookie di profilazione utilizzati nella profilazione degli utenti per fini pubblicitari
  • i cookie tecnici a tutela della navigazione e della fruizione del sito web.

L’obbligo del consenso esplicito riguarda solo i cookie con finalità di profilazione, come avviene ad esempio nei portali di shopping online o se utilizzi strumenti come Google AdSense o Google Analytics.
Nel momento in cui si accede ad un sito che fa uso di cookie (sia in home page o in un’altra pagina), deve comparire, in primo piano, un banner di idonee dimensioni dove si precisa:

  • l’uso di cookie di profilazione per inviare messaggi pubblicitari mirati, se presenti
  • l’uso di cookie di “terze parti”, ossia di cookie che raccolgono dati che verranno utilizzati da un sito diverso da quello che si sta visitando
  • un link all’approfondimento dell’informativa, con indicazioni sull’uso dei cookie inviati dal sito, che precisi la possibilità di negare il consenso alla loro installazione, direttamente o collegandosi ai vari siti, nel caso dei cookie di “terze parti”
  • evidenziare che, proseguendo nella navigazione, si presta il consenso all’uso dei cookie (ad esempio quanto si accede ad un’altra area del sito o selezionando un’immagine o un link).

Sanzioni

Entro il 3 giungo 2015 i gestori di siti web dovranno obbligatoriamente applicare il provvedimento. Oltre a tale data in caso di:

  • omessa informativa o di informativa inidonea è prevista una sanzione amministrativa (art. 161 del Codice) del pagamento di una somma compresa fra i 6.000 e 36.000€.
  • installazione di cookie sui terminali degli utenti in assenza del preventivo consenso comporta la sanzione (art. 162, comma 2-bis, del Codice) del pagamento di una somma da 10.000 a 120.000€.
  • omessa o incompleta notificazione al Garante viene applicata una sanzione (art. 163 del Codice) con il pagamento di una somma da 20.000 a 120.000€.

Mettersi in regola con la legge sui cookie

Per mettersi in regola con la legge europea sui cookie puoi disporre di alcuni plugin online da installare autonomamente. Se non hai competenze tecniche però, e preferisci affidarti a dei professionisti onde evitare problemi ed incappare in sanzioni, puoi contattarci per un preventivo e lasciare fare a noi.

Offriamo il servizio di analisi, installazione popup, e relativa certificazione ad un prezzo base di 49€ , previa verifica fattibilità (del tutto gratuita).

Possiamo dire che l’aspetto rilevante del nostro lavoro è quello di rendere il sito (o in questo caso i siti) conforme all’attuale legge che andrà in vigore il .

C’è una precisa disposizione in merito che ha lasciato erroneamente interpretazioni piuttosto fantasiose.

Di base :

  • Analizziamo il sito
  • Implementiamo il banner informativo
  • Blocchiamo Cookie di profilazione (nel 99% Google Analytics)
  • Rediamo il testo inerente alla privacy e alla gestione cookie.
  • Rilasciamo una certificazione PDF con tutti i dettagli tecnici a tutela dell’operato e come linea guida da esibire ad eventuali controlli.

Contattaci pure al 3409854556 o inviaci una mail a [email protected] per iniziare subito a mettere in regola il tuo sito, avendo cura di inserire il sito da mettere in regola.

Domande frequenti

Quali sono i siti soggetti al regolamento della Cookie Law?

Tutti i siti la cui organizzazione/persona cade sotto la giurisdizione europea (indipendentemente da dove è situato il proprio server) e che utilizzano cookies di terze parti (social widgets come facebook o twitter, analytics, disqus ecc ecc) o che utilizzano propri cookies per tracking, analisi o affiliati senza una diretta accettazione.

Sul mio sito utilizzo strumenti per analisi delle visite (p.e. Google Analytics), quindi devo mostrare l’avviso?

Sì! Tutti i servizi esterni devono essere accettati dal visitatore, secondo le indicazioni delle Cookie Law. Ecco una piccola lista:

  • Google Analytics
  • Google Adsense
  • Google Plus
  • Facebook widgets (il semplice bottone mi piace)
  • Twitter widgets (il semplice bottone follow)
  • Sistema disqus
  • Youtube
  • Vimeo
  • Qualsiasi altro servizio che utilizza cookie e potrebbe tracciare informazioni sull’utente.

Sul mio sito utilizzo i vari pulsanti per la condivisione (Google+, Facebook, Twitter, ecc…), devo prevedere l’avviso?

Certo! Il sito deve prevedere l’informazione e l’accettazione dei cookies esterni secondo quando specificato nella Cookie Law.

Sono una Pubblica Amministrazione, anche io devo ottemperare alla Cookie Law?

La Cookie Law non fa differenza tra le categorie, tutti i soggetti sono interessati; quindi anche le Pubbliche Amministrazioni sono tenute alla modifica dei loro siti.

Come mi metto in regola sulla cookie law ?

Per mettersi in regola con la legge europea sui cookie puoi disporre di alcuni plugin online da installare autonomamente. Se non hai competenze tecniche però, e preferisci affidarti a dei professionisti onde evitare problemi ed incappare in sanzioni, puoi contattarci per un preventivo e lasciare fare a noi.

Offriamo il servizio di analisi, installazione popup, e relativa certificazione ad un prezzo base di 49€ , previa verifica fattibilità (del tutto gratuita).

Contattaci pure al 3409854556 o inviaci una mail a [email protected] per conoscere con esattezza la miglior offerta a te riservata, avendo cura di inserire il sito da mettere in regola.

I principali portali di calcio italiani, scelgono DREAMSNET.IT per l’hosting e la consulenza sistemistica.

romanews-lazionews-bianconerinews

Come per molti altri siti ad alto traffico che abbiamo avuto modo di discutere negli scorsi articoli del nostro blog, questa volta abbiamo avuto modo di ricevere la piena fiducia da parte della società editrice MALU WEB s.r.l. di Roma che ci ha affidato il delicato compito di progettare l’infrastruttura di hosting per i loro portali calcistici ad alto traffico.

MALU WEB S.r.l. infatti è una società editrice che incentra il loro business su progetti editoriali ben targetizzati, curando portali web inerenti ad alcuni club calcistici italiani.

Romanews.eu, lazionews.eu, bianconerinews.eu, tra le testate giornalistiche in rilevanza, con picchi di traffico elevati in concomitanza di comunicati stampa dei vari club e degli impegni sportivi come derby e le varie gare calcistiche.

Gestire picchi di traffico elevati dovuti ad altrettanti picchi di visitatori, significa eseguire una progettazione ad-hoc sia per ciò che concerne la parte hardware sia per ciò che concerne la parte software.

Collocare i dati su datacenter europei come OVH in questo caso ha significato trovare una risposta estremamente intelligente alla solita domanda “Costi o prestazioni ?“.

In questo caso non abbiamo dovuto sacrificare nulla, dimensionando correttamente l’hardware alla base a prezzi estremamente competitivi su tutto il panorama europeo.

A livello software, abbiamo installato e configurato uno stack basato sulle più moderne tecnologie idonee a far girare correttamente blog WordPress.

A partire dallo strato DBMS, basato su Percona Server (Drop in replacement del più popolare MySQL Server di Oracle), PHP-FPM con Zend Opcache come process manager dell’interprete PHP, NGINX come Webserver, Memcached per gestire il caching di Worpress direttamente in RAM grazie al plugin W3 Total Cache, Varnish come cacher in reverse proxy, ed infine il tutto proxato con Incapsula (www.incapsula.com) al fine di gestire in modo trasparente un cacher e un sistema di distribuzione contenuti (ovvero CDN, Content Delivery Network).

Il tutto è stato implementato nei tempi e nelle modalità più idonee al fine di ridurre eventuali disservizi, ovvero in orario notturno tra giovedì notte e venerdì notte. La messa in produzione è stata monitorata in modo continuativo anche in tutta la giornata di sabato, al fine di visionare il carico del server e il corretto funzionamento di tutte le componenti.

Fieri come sempre di fare ciò che sappiamo fare bene e di fornire in questo caso oltre 14 milioni di visitatori al mese ai principali portali calcistici italiani, e di dimezzare i costi di infrastruttura all’azienda committente, che migrando dal vecchio fornitore, oltre ad aver migliorato sensibilmente la qualità di navigazione e la velocità di caricamento delle pagine Web, ha anche ridotto di 2 terzi i costi di noleggio e gestione dell’infrastruttura.

Qualora cerchiate soluzioni di hosting avanzato ed ottimizzazioni server avanzate, contattateci pure, sapremo trovare una soluzione ideale alle vostre esigenze, ai prezzi più interessanti sul mercato con prestazioni alla top di gamma.

Comunicato incidente e irraggiungibilità dei servizi Web / Mail mattinata Venerdì 6 Marzo 2015

Nella mattinata di oggi  6 Marzo 2015 si è verificato una problematica tecnica che ha avuto come conseguenza un disservizio nella fornitura di servizi Web / FTP / Mail / DB nella fascia oraria compresa tra le 8:50 e le 11:22.

La cronologia degli eventi è descritta seguentemente :

08:50 : Inizio prime segnalazioni clienti di Siti web down e problemi posta
08:51 : Check del server, constatazione consumo CPU MySQL al 100%, restart del servizio MySQL
09:02 : Carico MySQL di nuovo inspiegabilmente al 100%, restart del servizio
09:03 : Carico MySQL di nuovo inspiegabilmente al 100%, restart del servizio
09:05 : Carico MySQL di nuovo inspiegabilmente al 100%, restart dell’intero server.
09:10 : Server down
09:14 : Restart server in modalità forzata
09:20 : Server ancora down
09:22 : Apertura ticket presso Server Farm e richiesta collegamento kvm per connessione remota
09:52 : Collegamento KVM e fornitura credenziali per l’accesso.
10:00 : Accesso al sistema che necessita un controllo dischi. Avvio fsck su partizione di sistema 2TB
11:20 : Fsck terminato, riavvio sistema
11:22 : Sistema Up, tutti i servizi raggiungibili, carico nella norma. Check dei servizi e controllo log.

Nel voler riassumere la problematica, il sistema è andato in deadlock a causa di un bug su MySQL derivante da una tabella corrotta che portava all’esaurimento della CPU con un carico massimo del 100%. Riavviare il servizio MySQL non aveva esiti sperati in quanto il problema era a livello filesystem. E’ stato pertanto riavviato il server che ha imposto un intervento manuale per il controllo del filesystem con fsck. Avendo dovuto operare su partizioni di 2 TB, il tempo impiegato è stato di 1 ora abbondante.

Terminato il check del FS, il sistema di è avviato correttamente con tutti i relativi servizi.

Attualmente la situazione sembra essere tornata a normalità con tutti i servizi funzionanti e raggiungibili, un carico CPU nella norma. Nessun dato è stato perso durante il disservizio.
Come sempre ricordiamo che disponiamo di backup incrementali e di procedure di disaster recovery collaudate e all’avanguardia e di operare nella massima professionalità ed efficienza al fine di garantire tutte le dovute certezze ai nostri clienti.

Wordstress, uno scanner di vulnerabilità WordPress scritto in Ruby e tutto italiano.

Wordstress. Cos’è ?

Wordstress è uno scanner di sicurezza whitebox per i siti web wordpress .

I proprietari dei siti WordPress non vogliono perdere tempo nella lettura di rapporti di scansione di sicurezza blackbox complessi cercando di rimuovere i falsi positivi .

Uno strumento di sicurezza utile deve dare loro solo le vulnerabilità che interessano davvero plugin o temi installati, eliminando dunque falsi positivi e rimanendo molto attendibili.

Per raggiungere questo obiettivo , il plugin wordstress deve essere installato e configurato con una chiave di accesso unica sul sito web di destinazione. Lo scanner wordstress userà la chiave per accedere alle informazioni fornite dal plugin per individuare problemi di sicurezza .

Wordstress utilizza API al database di problemi di sicurezza fornito da wpvulndb.com

La pagina ufficiale del plugin la si può trovare qui : https://wordpress.org/plugins/wordstress/

L’autore, Paolo Perego, classe 1976 Milanese, può essere seguito e contattato su http://armoredcode.com/thesp0nge/ , specializzato in application security e sicurezza del Web è sicuramente indicato per gli interessati al settore.

 

Database MySQL, 10 trucchi per migliorarne le performance e la stabilità

 sveliamo dei semplici segreti che molti amministratori di database MySQL usano per migliorare le performance delle proprie basi dati.

wordpress_mysql_backup

Il database è la memoria del nostro sito internet o applicativo e ci permette di offrire contenuti dinamici in tempo reale ai nostri utenti.
Ottimizzare il database del proprio sito internet è un’operazione estremamente complessa e condizionata da tante variabili.

Se gestiamo applicazioni o siti che devono supportare numerosi accessi simultanei oppure gestiamo una base di dati che nel tempo ha assunto una elevata complessità (nell’ordine di qualche centinaia di migliaia di righe) è possibile avere un degrado nelle prestazioni, che di solito può essere risolto generalmente ottimizzando il DB.

Quelli che seguiranno sono 10 trucchi che aiutano a migliorare ed ottimizzare le performance di un DB MySQL e/o Percona Server basato su motore InnoDB (praticamente tutti quelli dei maggiori CMS, come WordPress, Moodle, Prestashop, Magento, Joomla, ecc.).

Parametri MySQL da modificare/configurare per un database performante

1.      Configurare il parametro innodb_buffer_pool_size

Il parametro più importante da modificare immediatamente è innodb_buffer_pool_size ed è quello che indica quanta memoria può essere usata per memorizzare in RAM i dati (e quindi evitare accessi al disco continui). Che valore dare dunque al buffer?

Mettiamo che abbiamo un server su cui risiede sia il webserver che Mysql, con 8 giga di ram: dedichiamo a innodb_buffer_pool_size 4GB

Per essere più chiaro e meno ripetitivo faccio una tabella

TIPOLOGIA DI SERVERRAM A DISPOSIZIONERAM DA DEDICARE
Webserver+mysql8GB RAM4GB RAM
Webserver+mysql16GB RAM10GB RAM
DBserver dedicato6GB RAM5GB RAM
DBserver dedicato12GB RAM10GB RAM
DBserver dedicato24GB RAM20GB RAM

2.      Configurare il parametro innodb_log_file_size

Questa proprietà definisce la grandezza massima del file di log per tabelle InnoDB. Pur essendo vero che maggiore è la dimensione, migliori sono le prestazioni, è anche vero che bisogna fare i conti con le dimensioni del server. A seconda di tale considerazione si consiglia un tuning di questa variabile tra i 512 e i 4GB.

3.      Configurare il parametro max_connections

Un numero massimo di connessioni disponibili inferiori al numero di connessioni correnti impedirà agli utenti di accedere al database, rendere il vostro sito inaccessibile e / o lenta. Un numero molto elevato di connessioni disponibili per un numero molto basso di connessioni effettive farà server MySQL richiedono più RAM rispetto effettivamente necessario. Il problema di valori troppo alti (oltre i 1000) è il possibile crash del server che si trova a dover gestire contemporaneamente oltre 1000 transazioni attive.

4.      Configurare il parametro innodb_file_per_table

Questa impostazione serve per indicare a MySQL se si vuole conservare i dati e gli indici in un unico tablespace (impostazione su OFF) o in un file IBD separato per ogni tabella (impostazione su ON). Il consiglio è di impostare il parametro su ON (valore di default per MySQL 5.6) soprattutto se si effettuano operazioni di cancellazione e ricostruzione tabelle od operazioni di compressione, che permettono di recuperare spazio. Evitare però di usare l’impostazione su ON qualora si abbia a che fare con un database dal numero di tabelle davvero elevato (oltre 10 mila).

5.      Configurare il parametro innodb_flush_log_at_trx_commit

Se sembra che InnoDB sia più lento di MyISAM è possibile che questo valore sia stato configurato male. Il default (1) significa che ad ogni commit di una transizione (o statement fuori dalla stessa) necessita di fare flush del log su disco, un’operazione piuttosto costosa se molto frequente. Settare il valore a 2 significa fare il flush del log solo tramite cache del sistema operativo. Il valore 0 è più veloce, ma è rischioso perchè si possono perdere dati durante le transizioni nel caso di un crash di MySQL Server. Anche il valore 2 è rischioso se il sistema operativo va in crash.

6.      Configurare il parametro innodb_flush_metod

Sui sistemi Linux e simili (FreeBSD, Solaris…) c’è inoltre il problema di evitare il doppio buffering e per farlo occorre settare la variabile innodb_flush_method a O_DIRECT. Fatelo se vi accorgete che il vostro sistema swappa più del previsto quando il db è sotto stress.

7.      Configurare il parametro innodb_log_buffer_size

Il default per questa variabile è 1MB e per sistemi con poche transazioni ed un traffico medio potrebbe bastare. Non va settato un valore troppo alto perchè è il buffer è flushato ogni secondo ed esagerare significherebbe sprecare memoria. Solitamente sono più che sufficienti 8-16 MB.

8.      Configurare il parametro query_cache_size

Utile per applicazioni con molti dati in lettura. Valori compresi tra i 256 e i 2048 MB sono i migliori, a seconda della potenza della vostra macchina.
Al momento in cui scrivo le considerazioni valgono per MySQL Server 5.5 (io le ho provate su MySQL Server 5.6) e sono comunque suggerimenti da utilizzare con criterio e in base alle possibilità della propria macchina.

9.      Configurare il parametro log_bin

Attivare il logging binario è necessario sia per far funzionare il server come replica di un database server master, sia se sul server (in configurazione singola) si vuole abilitare il sistema di backup automatico. Logga le istruzioni che scrivono dati in formato binario. L’argomento opzionale deve essere il nome del log. Se non è specificato, verrà usato datadir/’log-basename’-bin o ‘datadir’/mysql-bin (il secondo solo se --log-basename non è specificato). Si raccomanda caldamente di usare --log-basename o specificare un nome file per essere sicuri che la replica non si arresti nel caso in cui il nome host del server cambi.

10.  Configurare il parametro skip_name_resolve

MySQL, per i client che si collegano da remoto, mantiene una cache dove memorizza numero IP, nome host ed altre informazioni. Per far ciò il server tenta una risoluzione DNS IP->host name.
Se i DNS interni alla LAN non forniscono un reverse DNS lookup (PTR records) allora è probabile sperimentare un rallentamento nelle connessioni. Infatti MySQL tenterà ogni volta di reinserire nella cache il nome host, processo inevitabilmente destinato a fallire con un timeout.
Per disabilitare il DNS host name lookup è sufficiente far partire MySQL con l’opzione –skip-name-resolve. Basta modificare il file di configurazione my.cnf o my.ini

Miglioriamo le performance di MySQL Server ottimizzando e riparando le tabelle.

MySQL non ha purtroppo  la sana abitudine di ottimizzare le tabelle qualora ve ne sia bisogno.

Per ottimizzazione delle tabelle si intende la riduzione dei byte in eccesso che si vengono a verificare quando un campo di un qualsiasi record viene modificato oppure quando un record viene cancellato.

Ad esempio, se un campo contiene del testo d occupa 100 byte e poi il campo viene modificato ed occuperà 90 byte, c’è il rischio di trovarsi con 10 byte in eccesso.

Stesso discorso quando un record viene cancellato: se la tabella occupa 1000 byte e viene cancellato un record che ne occupa 150, ci troveremo con una tabella di 850 byte col rischio di averne 150 in eccesso.

MySQL mette a disposizione l’istruzione OPTIMIZE TABLE il cui compito è quello, appunto di ottimizzare la tabella e compattare i dati.

Per far ciò basta usare lo strumento Mysqlcheck, in questo modo:

mysqlcheck u root p autorepair c o nomedatabase

Ottimizzazione WordPress. Come ottimizzare e velocizzare un blog WordPress con una consulenza sistemistica dedicata. Linux Server Hosting per WordPress.

speed-up-wordpress-siteAbbiamo scritto parecchio in questi ultimi due anni che ci ha visto fornire consulenze ad-hoc (a clienti importanti) sull’importanza di avere un blog WordPress veloce e performante e su come raggiungere lo scopo.
Abbiamo scritto dell’importanza di un’installazione Server adeguata ed ottimizzata, dell’importanza di sostituire software come Apache, MySQL, con i più performanti NGINX e Percona Server.
Abbiamo scritto dell’importanza di scegliere un partner adeguato alle esigenze di hosting, relativamente al traffico generato, ai picchi di banda, in rapporto al budget disponibile.
Abbiamo scritto di come sia intelligente utilizzare CDN come Incapsula per migliorare la velocità nella distribuzione di contenuti statici (come le immagini), di come risparmare banda e di come risparmiare connessioni in ingresso che possano gravare in modo negativo sul server e sulle prestazioni.
Abbiamo scritto dell’importanza dei metodi di caching, sia a livello DB (MySQL o Percona Server che sia), sia a livello di CMS, sfruttando ottimi plugin come W3 Total Cache in accoppiata con software di sistema come Memcache o Redis.
Abbiamo scritto sulla possibilità di cachare le pagine statiche tramite un reverse proxy come Varnish.
Altri hanno scritto per noi di come sia importante un caricamento immediato delle pagine web, e di come un solo secondo di ritardo provochi :

  • 11% in meno di pagine visitate;
  • 16% di riduzione nella customer satisfaction;
  • 7% in meno di conversione della visita in acquisto;
  • Il cliente online tipico attende al massimo 2 secondi.

fino ad arrivare all’abbandono del sito dopo aver atteso 5 secondi.

http://www.businesscommunity.it/m/_Marzo2013/fare/Il_successo_delle_vendite_online_si_misura_in_secondi.php

Tutto questo per dire che un Blog WordPress, può e deve usufruire di tutte queste tecnologie disponibili per due scopi essenziali : essere rapido e scattante, reggere migliaia di utenti al secondo.
Il costo è alla portata di tutti, sul lungo termine si arriva spesso al risparmio, in alcuni casi addirittura DECIMANDO il costo di affitto infrastruttura.

Nel frattempo, si sono rivolti a noi per velocizzare il loro sito, clienti come :

e molti altri blog famosi basati su WordPress, coperti da clausola di riservatezza.

Va necessariamente detto, che di norma uno sviluppatore non ha conoscenze specifiche nell’implementare una corretta configurazione e dimensionamento dell’hardware e del software che saranno alla base dell’ottimizzazione del sito in WordPress, per cui se volete realmente fare la differenza, chiedeteci pure una consulenza sistemistica gratuita.

Grazie a competenze specifiche di networking e di sistemistica su Gnu/Linux, nonchè una conoscenza approfondita dei principali fornitori di connettività italiani ed europei, analizzeremo le problematiche attuali, e svilupperemo una strategia ad-hoc da proporvi al fine di garantirvi i migliori risultati al costo più basso, proponendo al contempo un’assistenza continuativa nel tempo grazie a piani di assistenza managed su server VPS, Cloud, o Server Dedicati.

Il vostro blog wordpress vi ringrazierà, ed anche i vostri utenti.

Anche Mammeacrobate.com ci sceglie per l’hosting ottimizzato del blog WordPress.

mammeacrobate

E’ in produzione dallo scorso Sabato mattina, il frutto del lavoro avvenuto nella nottata del Venerdì (per minimizzare il disservizio negli orari con pochi utenti online), che ci ha visto chiamati in causa come consulenti per un portale orientato al tema maternità, che ha numeri considerevoli : 12 mila FAN Facebook, e ben 18 autori.

Dopo aver lamentato problemi di velocità nella navigazione, abbiamo deciso di adottare l’ormai consueta “ricetta” al fine di ottimizzare la navigazione del blog WordPress e velocizzare il caricamento dei contenuti.

Dopo aver ottimizzato i valori di sistema del sistema operativo, abbiamo sostituito la vecchia architettura basata su Apache, PHP 5.3, MySQL 5.1 con la più performante configurazione basata su NGINX con PHP 5.6 in PHP-FPM con Zend OpCache abilitato e Percona Server 5.6

Un tuning ad-hoc del caching di Percona Server al fine di minimizzare l’accesso al DB per le query in sola lettura di tipo SELECT, e l’installazione e configurazione di un plugin per il caching in RAM (tramite memcache), come W3TC ci ha permesso di minimizzare i tempi destinati alla creazione delle pagine dinamiche PHP.

Una successiva implementazione di una pseudo CND su dominio di terzo livello img.mammeacrobate.com, tramite Incapsula, ci ha permesso di assegnare il compito di distribuzione di contenuti statici (tutti gli upload, ed in particolar modo le immagini) ai server della CDN Incapsula, guadagnando in velocità potendo minimizzare le connessioni in ingresso verso il server di Mammeacrobate.com e dunque risparmiare picchi di banda e traffico.

Un’altro sito che si unisce all’ormai folta schiera di blog wordpress ad alto traffico trattati con successo negli ultimi 2 anni.

Se cercate un hosting WordPress ottimizzato per il vostro blog, contattateci pure, sapremo sicuramente proporvi una soluzione ai vostri problemi.