Konfigurera MySQL beroende på minnesstorlek
Publicerat 15 mars 2009 av Christian
Visste du att det medföljer ett antal optimerade konfigurationsfiler med MySQL? Jag upptäckte det precis. Man bör tydligen välja en av dessa filer för att få bästa prestanda.
På min server ligger filerna i mappen /usr/share/doc/mysql-server-5.0/examples. Du kan kopiera någon av dessa över /etc/mysql/my.cnf (efter att ha tagit backup på denna).
Alternativen som finns är:
| my-huge.cnf | Databasserver med 1-2 GB minne |
| my-large.cnf | Databasserver med 512 MB minne |
| my-medium.cnf | Webbserver med 128 MB minne |
| my-small.cnf | Webbserver med 64 MB minne |
Tänk på att databasen riskerar att bli långsammare om du tilldelar den mindre minne. Men om databasen inte används så mycket, kanske det inte gör något. Det är onödigt att låta MySQL ta 150 MB minne om det ändå bara ställs 1-2 frågor i sekunden, som på min server.
Utöver att välja en av dessa filer, kan du ange fler inställningar för att minska minnesanvändningen (under [mysqld]):
skip-innodb skip-bdb
(Under förutsättning att du inte använder InnoDB-tabeller eller BerkeleyDB, förstås! Bara att ha stöd för InnoDB kräver upp till 100 MB minne, även om du inte använder det…)
Dessutom kan du ange ”skip-networking” om du inte vill att databasen ska tillåta andra datorer på nätverket att koppla upp sig. Det förbättrar säkerheten, men jag är tveksam till om det minskar minnesanvändningen.
Uppdatering: Jag har provat my-small.cnf på min VPS med 512 MB minne i ett par dagar. Minnesanvändningen och processorbelastningen har inte gått ned alls, däremot har cache-träffarna minskat avsevärt! Det var alltså inget bra val. Jag provar nu med my-medium, så får vi se om det blir bättre.
Relaterade artiklar:



Tack för tipset!
Intressant! Jag hade faktiskt ingen aning om detta