[Moscow.pm] Асинхронная обработка: ActiveMQ и другие брокеры сообщений
Михаил Монашёв
postmaster на softsearch.ru
Сб Мар 21 04:56:25 PDT 2009
Здравствуйте, Павел.
>> ОП> Такс, я тут пока забил на очереди и заморочился с MemcacheDB,
>> ОП> попутно сделал сравнение с MySQL для большей уверенности в
>> ОП> выборе:
>> ОП> http://phpsuxx.blogspot.com/2009/03/mysql-vs-memcachedb.html
>> ОП> (если у кого есть какие комментарии по поводу теста или пожелания
>> ОП> погонять это ещё в каком-то режиме, то велкам).
>>
>> ИМХО, второй и третий тест идентичны. Мускул вроде автоматом делает varchar из
>> char, если ширина столбща более 4-х символов.
ОП> Вроде, как раз наоборот -- конвертация идёт из коротких варчаров в чар:
ОП> "Before MySQL 5.0.3, VARCHAR columns with a length less than four are
ОП> changed to CHAR."
Угу. Если 4 и меньше, то всегда будет CHAR, иначе VARCHAR. А чтобый на
больших длинах полей был CHAR надо при создании таблицы писать FIXED .
>>
>> ОП> А-то недавно были посты об архитектуре какого-то хайлоада, где
>> ОП> они хранили данные по ключу в мускуле, поэтому и провел тесты,
>> ОП> но как они показали, я ждал от мускуля невозможного :)
>>
>> Было бы неплохо ещё что-то поудалять и потом проверить скорость
>> чтения. И ещё потестить на гигабайтных базах.
ОП> Как автоматизировать тесты с удалением, ещё не придумал.
ОП> Пока написал автоматические тест скрипты, чтобы гонять без моего
ОП> участия и прогнал на больших базах.
Да очень просто: 90 записей вставил, 10 удалил. И так в цикле.
У MyISAM есть одна нехорошая особенность. Если в ней есть удалённые
записи, то она заметно медленнее работает.
У InnoDB такого свойства нет. И кстати MemcacheDB было бы неплохо
сравнить с InnoDB.
ОП> В итоге MemcacheDB отлично выдержал возрастание числа ключей с 2млн до
ОП> 75+ млн (база вышла в 39+ гб), сохранив скорость записи на уровне
ОП> 13.500 / секунду, а чтения на уровне 17 000 записей / секунду.
ОП> Итого, почти линейное масштабирование... По MySQL пока тесты не
ОП> провёл, в ближайшее время будут.
А ты не смотрел, как MemcacheDB скалится на несколько корок?
>>
>> ОП> В итоге разница получилась довольно большая (все цифры в "записей
>> ОП> / секунду"):
>>
>> ОП> тип чтение запись
>> ОП> MySQL 3200 10 000
>> ОП> MchDB 18000 14000
>>
>> ОП> MySQL был следующей конфы: дефалтный Центосовый my.cnf, тип engine --
>> ОП> MyISAM + char вместо varchar в таблице + индекс по ключевому полю.
>> ОП> MemcacheDB: /memcachedb -p7777 -d -r -N -H $PATH/db -u root >
>> $PATH/debug.log 2>>&1
>>
>> ОП> Вполне мог накосячить в тестах, это мой первый опыт подобного
>> ОП> тестирования, так что жду критики :)
>>
>> Дефолтный конфиг мускула не имеет смысла. Конфиг каждого мускула
>> должен писаться под его конкретную задачу. В твоём случае нужно во
>> время и после теста посмотреть на накопленную мускулом статистику и
>> потюнить конфиг. Уверен, цифры могут сильно измениться...
>>
>>
>> --
>>
>> С уважением,
>> Михаил Монашёв, SoftSearch.ru
>> mailto:postmaster на softsearch.ru
>> ICQ# 166233339
>> http://michael.mindmix.ru/
>> Без бэкапа по жизни.
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
--
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster на softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
Подробная информация о списке рассылки Moscow-pm