Blocco database a seguito della pubblicazione di un post sulla webapp

dvdscr

Nuovo Utente
30 Gen 2014
11
0
1
Ciao a tutti,
ho il seguente problema di performance e vorrei illustrarvi il contesto in cui avviene. Ho una macchina virtuale in Cloud, VMWare con CentOS 6.x 64bit, 1 cpu, disco 10gb e ram da 1gb. Ho installato il pacchetto Bitnami che contiene Apache, MySQL, e wordpress. A partire da questa installazione ho predisposto delle applicazioni raggiungibili da più domini, sotto il server Apache, ma nulla di più articolato della installazione wordpress principale e di una seconda installazione di wordpress raggiungibile da altro dominio.

Il problema che si verifica sembra a tutti gli effetti un blocco dal database, perché a seguito di alcune operazioni Apache redirigge le richieste ma il database non risponde, e le richieste http che arrivano alla macchina saturano le risorse bloccando il tutto. Nello specifico l'utente finale riceve il seguente messaggio:
Error establishing a database connection

L'operazione a seguito della quale si verifica questo "crash" è la pubblicazione di un post su wordpress, di fatto una scrittura sul database.

Non riesco ad avere evidenza sul log (mysqld.log) del problema, perché quando si verifica non scrive più nulla. L'unica traccia ce l'ho al restart del servizio, dopo che ho riavviato il server (che come vi dicevo va in blocco). Il log, al riavvio, riporta le seguenti informazioni, evidenziando che "Database was not shut down normally!" (potrebbe anche essere dovuto al fatto che ogni volta devo riavviare il server):

140130 12:03:07 mysqld_safe Starting mysqld.bin daemon with databases from /opt/wordpress/mysql/data
140130 12:03:09 [Note] Plugin 'FEDERATED' is disabled.
140130 12:03:09 InnoDB: The InnoDB memory heap is disabled
140130 12:03:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140130 12:03:09 InnoDB: Compressed tables use zlib 1.2.3
140130 12:03:09 InnoDB: Using Linux native AIO
140130 12:03:09 InnoDB: Initializing buffer pool, size = 128.0M
140130 12:03:09 InnoDB: Completed initialization of buffer pool
140130 12:03:09 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
140130 12:03:09 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
140130 12:03:13 InnoDB: Waiting for the background threads to start
140130 12:03:14 InnoDB: 1.1.8 started; log sequence number 2555675975
140130 12:03:15 [Note] Event Scheduler: Loaded 0 events
140130 12:03:15 [Note] /opt/wordpress/mysql/bin/mysqld.bin: ready for connections.
Version: '5.5.21' socket: '/opt/wordpress/mysql/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)​

Come posso capire che problema c'è?

Grazie.
 
non è che ti crasha il server mysql per mancanza di memoria RAM)

Ciao, è possibile, è poco 1Gb di RAM per una semplice architettura come quella descritta?

Mi è anche venuto in mente che forse non gestisco bene la memoria, come posso fare una verifica puntuale su questo?

Grazie!
 
Ciao, è possibile, è poco 1Gb di RAM per una semplice architettura come quella descritta?

Mi è anche venuto in mente che forse non gestisco bene la memoria, come posso fare una verifica puntuale su questo?

Grazie!

Nella mia umile esperienza, ho visto mysql richiedere anche 1,5Gb di RAM di consumo su macchine dove non era installato in modo da occupare tutte le risorse del server.
Dipende da vari fattori il consumo: frequenza delle richieste, mole delle tabelle da interrogare, accessi simultanei e così via (nel mio caso si parlava di una decina di applicazioni web con un traffico totale di utenza in una fascia media-alta).
Personalmente ti consiglierei di avere a disposizione non meno di 2Gb di memoria.

Per il resto, penso che coolnetwork abbia sicuramente più esperienza di me in proposito, ma comunque volevo condividere questa piccola info se può essere utile.
 

Discussioni simili