MySQL 5.5 ha ridotto le performance nel kernel 3.2 di Linux rispetto al 2.6

I nostri server di database (principalmente basati sui pacchetti stabili Debian (= attualmente Wheezy) sembrano avere circa 4 volte più carico per lo stesso carico di lavoro nel kernel 3.2.0-4-amd64 quindi nel suo precedente 2.6.32-5-amd64 kernel. Con tutti i pacchetti lo stesso & l'avvio nell'altro kernel possiamo vedere chiaramente la differenza, e sono in una perdita di perché. Il problema è che non vedo tanta differenza di carico IO o CPU.

L'impostazione del kernel.sched_min_granularity_ns predefinito e dei kernel.sched_latency_ns torna ai suoi valori 2.6.32 aiuta un po '(tre volte il carico anziché 4 volte), ma non al livello che vorremmo. Come molte delle impostazioni del kernel sono cambiate, possiamo difficilmente solo impostare ciecamente il nuovo kernel sui vecchi valori predefiniti del 2.6 one.

  • Troppi processi di httpd in esecuzione e il block del server CentOS
  • MySQL si blocca periodicamente
  • Il database viene sbattuto più e più volte; ha già pulito il sito per l'iniezione SQL
  • Più di 1 miliardo di righe in una tabella MyISAM
  • Il nostro sistema embedded linux non riconoscerà un dispositivo USB se è collegato prima dell'alimentazione. Suggerimenti?
  • CPU dual core Xeon ma ancora un carico elevato
  • Qualcun altro ha avuto esperienza con questo? Se è così, cosa ha causato questo (e idealmente: come potrebbe essere risolto)?

    Come è legato al kernel profondo, forse una differenza di valori sysctl potrebbe essere di interesse: qui è un diff dei 2 (incollato per impedire una domanda troppo lunga).

    modifica : attualmente stiamo indagando su questa risposta SO per vedere se ciò vale.

    5 Solutions collect form web for “MySQL 5.5 ha ridotto le performance nel kernel 3.2 di Linux rispetto al 2.6”

    Linux kernel 3.0 – 3.8 dovrebbe essere evitato o aggiornato per affrontare il degrado delle performance di IO

    Il degrado delle performance del kernel Linux IO dimostrato da Josh Berkus utilizzando un carico di lavoro di benchmark privato in esecuzione contro PostgreSQL 9.3 su Ubuntu 12.04 con il kernel 3.2.0.

    "… è davvero necessario evitare each kernel tra 3.0 e 3.8 Mentre RHEL è stato attaccato ai kernel 2.6 (che hanno le proprie emissioni, ma non così male), Ubuntu ha rilasciato diversi kernel 3.X per 12.04 … aggiornato … al kernel 3.13.0 e ha eseguito lo stesso carico di lavoro esatto … una riduzione dell'80% dell'ID. Possiamo ringraziare le persone intelligenti del gruppo Linux FS / MM per aver battuto una serie di performance problemi."

    Vedi http://www.databasesoup.com/2014/09/why-you-need-to-avoid-linux-kernel-32.html

    Ho affrontato un problema nella StackExchange DBA per il kernel e il journaling . L'ho imparato da Percona nel maggio che un certo comportmento a filo è in realtà simulato.

    • Potrebbe essere necessario modificare il modo in cui il journaling è fatto.
    • Potresti wherer sintonizzare InnoDB
      • Allentamento della conformità ACID per la capacità di scrittura (impostazione innodb_flush_log_at_trx_commit a 0 o 2)
      • File di log più grandi
      • Buffer di registro più grande

    Forse il carico riportto non è corretto, come in questo rapporto di bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693942

    Potete vedere che c'è qualcosa di più lento? o vmstat sembra che il server sta facendo davvero più lavoro? altrimenti suppongo che tu abbia appena colpito quel bug segnalato, lo stesso è successo a me qualche tempo fa, la prestazione del server non era diversa solo la media del carico in output era più alta.

    Non ho la reputazione di fare questo un commento .. ma mentre state aggiornando il kernel avete aggiornato anche la versione di MySQL? Puoi elencare quale MySQL 5.5.X sei in esecuzione?

    Ironia della sorte in alcune delle versioni più recenti di MySQL hanno effettivamente fatto performance notevolmente peggio .. sono andati a ripararli naturalmente, ma ha creato una significativa udienza rossa per me durante la modifica nella mia applicazione.

    "InnoDB: La correzione per il bug # 17699331 ha causato una elevata velocità di creazione e distruzione di blocchi di lettura / scrittura che hanno determinato una regressione delle performance (bug # 18345645, bug # 71708)"

    http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-19.html

    "InnoDB: una regressione introdotta da Bug # 14329288 comporterebbe un degrado delle performance quando una tabella compressa non si inserisce nella memory (bug # 18124788, bug # 71436)"

    http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-17.html

    ..eccetera

    È uguale per 5.5:

    "InnoDB: una regressione introdotta da Bug # 14329288 comporterebbe un degrado delle performance quando una tabella compressa non si inserisce nella memory (bug # 18124788, bug # 71436)"

    http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-37.html

    L'aggiornamento a un nuovo MySQL lo restituisce a performance ragionevoli?

    MySQL ha anche un codice specifico del kernel:

    "l'asincroni I / O non è supportto su tmpfs in alcune versioni del kernel Linux.La soluzione è stata distriggersre l'impostazione innodb_use_native_aio o utilizzare una directory temporanea diversa La correzione causa InnoDB a distriggersre automaticamente l'impostazione innodb_use_native_aio se rileva che il file temporaneo la directory non support l'I / O asincrono (bug # 13593888, bug # 11765450, bug # 58421) "

    " http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-5.html

    Quindi assicuratevi di eseguire l'ultima generazione.

    In discutere si consideri MySQL 5.6.X (che ora è ufficialmente stabile ed è stato per un po 'di tempo), "Per Linux, MySQL 5.6 mostra un miglioramento del TPS di 150% su MySQL 5.5" http: //dev.mysql. com / Tech-resources / articoli / mysql-5.6-rc.html

    Ho avuto enormi problemi di performance di mysql che si spostano da debian w / kernel 2.6 e mysql 5.1 a debian w / kernel 3.2 e mysql 5.5 (wheezy).

    Quello che ha risolto il problema per mysql era barriera = 0 in / etc / fstab. Verifica https://wiki.archlinux.org/index.php/Ext4

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.