Domanda

Stiamo eseguendo un database di dimensioni moderate (350 GB) con alcune tabelle abbastanza grandi (alcune centinaia di righe, 50 GB) su un server ragionevolmente ampio (2 x Xeons quad-core, 24 GB di RAM, 2,5 "dischi 10K in RAID10) e stanno ottenendo alcuni inserti piuttosto lenti (ad es. Inserto semplice di una singola riga che prende 90 secondi!).

Il nostro InnoDb_Buffer_Pool_SIze è impostato su 400 MB, che sarà normalmente troppo basso per questo tipo di installazione.Tuttavia, il nostro fornitore di hosting consiglia che questo è irrilevante quando si corre su ZFS.Ha ragione?

(scuse per il doppio post su https://dba.stackexchange.com/questions/1975/is-Tuning-the-innodb-Buffer-Pool-Size-Important-on-Solaris-zfs , ma non sono sicuro di quanto grandeIl pubblico è laggiù!)

È stato utile?

Soluzione

Avrei ancora impostato l'INNODB_BUFFER_POL_SIZE molto più alto che 400m. La ragione? La piscina tampone InnoDB rimarrà ancora cache i dati e le pagine indicizzate necessarie per le tabelle accessibili frequentemente.

Eseguire questa query per ottenere l'InnoDb_buffer_pool_size consigliato in MB:

Selezionare Concat (rotondo (KBS / Power (1024, se (PW <0,0, se (PW> 3,0, PW))) + 0.49999), substr ('KMG', IF (PW <0, 0, se (PW> 3,0, PW)) + 1,1)) consigliato_innodb_buffer_pool_size da (Seleziona somma (data_Length + index_Length) KBS da INFORMAZIONI_SCHEMA.Tables Where Engine= 'INNODB') A, (selezionare 2 PW) B;

Utilizzare semplicemente il risultato di questa query o l'80% della RAM installata (nel tuo caso 19660M) a seconda di quale è più piccolo.

Imposi anche l'INNODB_LOG_FILE_SIZE al 25% della dimensione del pool del buffer InnoDB. Sfortunatamente, il valore massimo di INNODB_LOG_FILE_SIZE è 2047 m. (1 m Breve di 2G) Quindi, impostare InnoDB_Log_File_Size a 2047M dal 25% di InnoDb_Buffer_Pool_Size della mia impostazione consigliata è 4915m.

Ancora un'altra raccomandazione è quella di Disabilita la conformità dell'acido . Utilizzare 0 o 2 per INNODB_FLUSH_LOG_AT_TRX_COMMIT (il valore predefinito è 1 che supporta la conformità acida) questo produrrà più velocemente InnoDb scrive a rischio di perdere fino a 1 secondo valore di transazioni in caso di incidente. .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top