Jag har idag en databas i MySQL på vårt företag som är c:a 3gb stor, med alla tabeller inräknade.
SQL'en körs på en Windows 2003 32bit maskin med 4gb ram.
Sedan c:a 1år tillbaka är maskinen i virtuell drift, varpå vi kunde lyfta den från 2 cpu'er till 4 cpu'er (4x 2,4ghz) och har tilldelat den 4gb ram.
Maskinen i sig fick ett väldigt bra lyft rent prestandamässigt bara med tanke på den nya hårdvaran den rullar på, men flaskhalsen är databasen.
Om jag ställer en större fråga till databasen så slår en CPU-core i taket, MySQL tjänsten drar ~120mb minne (efter optimering. dock lite?).
Har provat att optimera alla tabeller, optimerat minnesanvändingen (skall vara 20% av tillgänligt ram om man kör med MyISAM).
Flaskhalsen verkar dock vara CPU'n och multicore, då MySQL'en aldrig kommer använda mer än en core till MyISAM frågorna...
Det bästa hade varit att ha EN stor CPU med mer kraft, istället för flera små.
Ex. 1x 4.5ghz istället för 4x 2,4ghz.
Då vi kör en kluster med 3 likadana hosts i VMWare är maskinerna likadana;
2st Xenon 5645 Hexa Core 2,4ghz
48gb ram
SAN med Raid-10 via iSCSI på 10gbit lina.
Alla hostarna är likadana, och har samma multicores cpu'er med lägre klocka.
Problemet är att MySQL inte kan nyttja multicores utan hade hellre föredragit en stor CPU.
Vad jag förstått från div forum på nätet så klarar dock InnoDB uppsättning multicores processer...
Så frågorna är;
1. Kan man i VMWare ställa om så att flera cores upplevs i den virtuella maskinen som en stor / större CPU?
Detta för att "lura" MySQL att nyttja fler cores, fast den själv bara ser en...
2. Kan kan konvertera om en MyISAM databas till InnoDB utan krångel (typ FAT32->NTFS) eller kan det bli problem med driften?