Aumenta la dimensione del pool di buffer InnoDB


11

Ho difficoltà a impostare la dimensione del pool di buffer e la dimensione del file di registro per MySql InnoDB. Sono tutt'altro che un esperto di MySql ma ho letto e sembra che per cambiarlo aggiungo queste righe al mio /etc/mysql/my.cnf

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

Il server ha circa 7 GB di memoria ed è anche in esecuzione un server Web, quindi penso che questi numeri dovrebbero essere un buon punto di partenza. Dopo aver salvato e riavviato il server, tuttavia, non sembra che le modifiche abbiano avuto effetto. Ho provato a eseguire Mysqltuner che ha riferito che il pool di buffer è ancora a 16.0M. Hai idea di cosa sto facendo di sbagliato? Fammi sapere se desideri vedere più file di configurazione. Grazie!


quale distribuzione? stai usando i pacchetti della distro o qualcos'altro? Come stai iniziando mysql? In breve, cosa hai installato, su cosa lo hai installato e come lo hai installato?
navaho,

È lo stack di lampade predefinito sopra il server Ubuntu x64
tgrosinger

C'era un altro file di configurazione situato in / opt / lampp / etc che credo funzionerà.
tgrosinger,

Risposte:


7

Assicurati che quelle linee siano all'interno della [mysqld]sezione, cioè dopo [mysqld]ma prima di ogni altra [section]come [mysqldump].


Essi sono nella sezione corretta, in [mysqld] a destra prima di [mysqldump]
tgrosinger

2

Controlla il tuo log degli errori di MySQL per informazioni - molto probabilmente situato in /var/lib/mysql- è anche un sistema a 32 bit con il kernel bigmem? In tal caso, non puoi indirizzare più di 2 GB per MySQL.

Inoltre, ti consigliamo di confermare da MySQL stesso sulla dimensione del pool di buffer: 16 MB suona un po 'fuori, considerando che il valore predefinito è 128 MB . Puoi confermarlo digitando "MOSTRA VARIABILI COME" innodb_buffer_pool_size "in una sessione MySQL per quel server. Il risultato è in byte.


Per qualche motivo non riesco a entrare in quella directory. Riesco a vederlo quando lo faccio su / var / lib ma quando provo a inserire il cd ottengo "permesso negato". Se provo a inserire il CD come sudo, dice "Nessun file o directory". Pensieri? È un'installazione a 64 bit di Ubuntu Server.
tgrosinger,

Dovresti pubblicare il tuo my.cnf (/etc/my.cnf o su debian probabilmente /etc/mysql/my.cnf)
thinice

Inoltre, ti consigliamo di confermare da MySQL stesso sulla dimensione del pool di buffer: 16 MB suona un po 'fuori, considerando che l' impostazione predefinita è 128 MB . Puoi confermarlo digitando "MOSTRA VARIABILI COME" innodb_buffer_pool_size "in una sessione MySQL per quel server. Il risultato è in byte.
thinice

1
sudo cdnon funzionerà perché sudo crea una subshell con i giusti privilegi e la chiude al termine, lasciandoti da dove hai iniziato. Prova sudo -sinvece.
Ladadadada,

Quindi quando uso SHOW VARIABLES LIKE ... dice che la dimensione del pool di buffer è 16777216 che credo sia in realtà 16M. Ecco my.cnf: hastebin.com/binaqeforu.vala Grazie mille!
tgrosinger,

2

Nel mio caso il problema era innodb_buffer_pool_instances.

Da quando stavo riducendo innodb_buffer_pool_size, è diventato meno di 1 GB per istanza, quindi ha finito per arrotondarlo.

Quando ho anche ridotto le istanze , ha finalmente cambiato la dimensione del pool !


0

Potresti iniziare mysql con --no-defaults o (-no-defaults), il che fa sì che non carichi affatto una configurazione. C'è anche --defaults-file (o -default-file, non sicuro), che causa il caricamento di una specifica configurazione. Controlla anche se si tratta di una configurazione diversa da quella che modifichi.

Puoi provare a iniziare con:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

Oppure controlla i parametri con cui stai già iniziando e vedi se uno di essi lo fa omettere la configurazione.


Come posso vedere come si avvia in Ubuntu? Sono abituato ad archiviare dove lo aggiungerei semplicemente al file rc.d, ma non vedo nulla di simile qui.
tgrosinger,

Arch utilizza BSD Style Init, mentre Ubuntu utilizza SysV Init. Quindi c'è un file in /etc/init.d per avviarlo e possibilmente un file in / etc / defaults in cui vengono impostate le opzioni. Usando qualcosa sulla falsariga di 'ps -ef | grep mysql 'puoi vedere con quali opzioni è attualmente in esecuzione.
juwi
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.