Konfigurera MySQL beroende på minnesstorlek

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:

Kategorier: sysadmin

Kommentera (2)

 

Skriv en kommentar




Powered by WP Hashcash