|
Тема |
Re: MySQL - Linux vs FreeBSD [re: curly] |
|
Автор |
salle (Един такъв) |
|
Публикувано | 27.07.01 15:41 |
|
|
Хмм....
И двамата не сте прави
1. Не става въпрос за това коя OS по-добре използва SMP а за това, че MySQL под FreeBSD както и да се компилира пуска всички threads на 1 CPU докато на Linux ги разпределя.
2. Аз не си мисля така - не съм имал възможност да тествам. Цитирам хора, които са правили тестове вкл. Jeremy Cole - чонек от екипа на MySQL, който описваше доста натоварен негов сървър - около 1.6 милиона заявки на час - PHP сесии - т.е. SELECT + INSERT. Та на въпроса защо 4CPU - Xeon машината му е под Linux а не FreeBSD последва доста дълго обяснение подкрепено от o,whr фенове на FreeBSD.
3. Въпроса за хардуера също е малко спорен защото силно зависи от натоварването. Има огромна разлика между 1 клиент който пише и 1 чете и 100 едновременно пишещи и 1000 едновременно четящи. В първия случай (1 log-ващ daemon) едва ли има смисъл от >1 CPU - max 2 за да може втория да чете. Във втория случай ..... Всъщност MySQL не е особено подходящ когато има много едновременно ъпдейтващи клиенти.
Като цяло пътя за оптимизация е:
Повече RAM, повече CPU, по-бързи дискове
В този точно ред. Това обаче важи за всички SQL сървъри доколкото знам.
Нещо специфично за MySQL и не толкова лесно за намиране в документацията:
my.cnf
[mysqld]
...
tmpdir = /mysqltmp
log-update = /mysql_log/update.log
Тези двете се слагат на ФИЗИЧЕСКИ различен диск от datadir
т.е. базите данни, log и tmp се разхвърлят върху различни дискове - ясно е откъде се печели скорост.
Също така могат да се разхвърлят отделни бази данни и дори отделни таблици.
MySQL се работи без прроблеми със symlink
така, че ако имате натоварена таблица може дори да разделите .MYD от .MYI
на 2 IDE-та и да спечелите повече скорост от 1 SCSI
Естествено 5 SCSI диска винаги ще са по-бързи :)))
Всичко това е свързано с не толкова очевидния факт (и не особено логичен), че MySQL пише част от Temp таблиците във tmpdir а други във директорията на съответната база данни.
Примерно ALTER TABLE DROP KEY key; създава временна таблица в същата директория. SELECT .... FROM ... GROUP BY ... ORDER BY ... DESC; създава временна таблица във tmpdir !!! А това може да бъде проблем както с достатъчно празно място така и като сигурност. tmpdir по default е /tmp а там обикновено имат достъп всички..
Linux is like a wigwam - No Windows, No Gates, Apache inside
|
| |
|
|
|