För att kolla och reparera samt optimera alla mysql databaser så kör detta kommando :
mysqlcheck -u root -p –auto-repair –check –optimize –all-databases
Man kan sedan använda denna i cron för att få denna optimering dagligen.
Relaterade länkar om Optimera MySQL med mysqlcheck
Sökningar:
Om din burk krashar med OOM, alltså out-of-memory så kan du lägga till detta i /etc/sysctl.conf för att den ska panica vid out of memory och därmed starta om:
vm.panic_on_oom=1
Sen måste denna rad också finnas som jag har skrivit om förut för att den skall starta om:
kernel.panic=10
Nedan kommer ett verktyg som är perfekt för att optimera sin MySQL.
Installation av MySQLtuner.pl:
wget mysqltuner.pl/mysqltuner.pl.gz
gzip -d mysqltuner.pl.gz
chmod 0700 mysqltuner.pl
./mysqltuner.pl
Exempel på optimering:
XXX:~/tools# ./mysqltuner.pl
>> MySQLTuner 1.0.0 – Major Hayden
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with ‘–help’ for additional options and output filtering
Please enter your MySQL administrative login: —
Please enter your MySQL administrative password:
——– General Statistics ————————————————–
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.51a-24+lenny1
[OK] Operating on 32-bit architecture with less than 2GB RAM
——– Storage Engine Statistics ——————————————-
[--] Status: +Archive -BDB -Federated -InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 15M (Tables: 433)
[!!] Total fragmented tables: 43
——– Performance Metrics ————————————————-
[--] Up for: 2d 3h 40m 22s (1M q [10.118 qps], 83K conn, TX: 97M, RX: 350M)
[--] Reads / Writes: 92% / 8%
[--] Total buffers: 58.0M global + 2.6M per thread (100 max threads)
[OK] Maximum possible memory usage: 320.5M (31% of installed RAM)
[OK] Slow queries: 0% (7/1M)
[OK] Highest usage of available connections: 24% (24/100)
[OK] Key buffer size / total MyISAM indexes: 16.0M/7.1M
[OK] Key buffer hit rate: 99.4% (30M cached / 180K reads)
[OK] Query cache efficiency: 78.5% (1M cached / 1M selects)
[!!] Query cache prunes per day: 57655
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 71K sorts)
[!!] Temporary tables created on disk: 49% (25K on disk / 52K total)
[OK] Thread cache hit rate: 99% (76 created / 83K connections)
[!!] Table cache hit rate: 0% (64 open / 16K opened)
[OK] Open file limit used: 12% (128/1K)
[OK] Table locks acquired immediately: 99% (435K immediate / 435K locks)
——– Recommendations —————————————————–
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Enable the slow query log to troubleshoot bad queries
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
query_cache_size (> 16M)
tmp_table_size (> 32M)
max_heap_table_size (> 16M)
table_cache (> 64)
Men då har jag redan ändrat lite för att optimera, men det första man bör göra är att stänga av InnoDB om man inte använder det så har man tjänat ca 100mb i arbetsminne som den tar upp på default.
Lägger också upp en mirror här av mysql optimeraren:
MySQLtuner.pl.gz
Relaterade länkar om Optimera MySQL
Sökningar:
Flytta alla plugins till en annan mapp och lägg tillbaka dom en och en tills du vet vilken plugin det är som orsakar skiten.
För just mig var det wp-super-cache som ställde till det, så börja där.
Ett litet script som tar backup på dina databaser samt html filer, och komprimerar dom efteråt för enkel förvaring.
#!/bin/sh
#backup 0.1 gsoc
#dumps databases and all html
mkdir /root/tools/backups
cd /root/tools/backups
#Databas
mysqldump –all-databases -p | bzip2 -c > backup-`date +”%b_%d_%Y”`.sql.bz2
#HTML
tar –create –bzip2 –file=backup-`date +”%b_%d_%Y”`.tar.bz2 /var/www/sites
Kommentarer