2009-03-09 3 views
2

Я ищу, чтобы масштабировать существующую установку phpBB, отделяя прочитанные запросы от запросов на запись до двух отдельных реплицированных серверов MySQL. Кто-то преуспел в этом, особенно с phpBB?Масштабирование phpBB?

Самое большое беспокойство, которое у меня есть до сих пор, заключается в том, что кажется, что запросы разбросаны случайно по всему коду. Мне бы хотелось услышать, если кто-то еще это сделал, и если да, то как это получилось/что это за процесс.

+0

sorta Любопытно, почему вы это делаете? .. Вы сделали какой-то бенчмарк, который предполагает, что делать это - победа над просто балансировкой трафика? –

+0

Это будет сделано бок о бок с базовой балансировкой нагрузки. Мы ожидаем, что нелепое количество трафика будет сосредоточено в небольших временных рамках со всего мира и потребуется модернизировать существующую систему. –

+0

@Scott Evernden Разделение чтения и записи на разные физические серверы баз данных является обычной практикой для высокозатратных систем. Столбец блокируется, когда один поток записывается в строку, то есть все остальные потоки не могут читать от него до тех пор, пока эта запись не будет завершена. Перемещая чтения в подчиненные реплики (которые получают только новые данные, отправленные им после фиксации), это означает, что чтение никогда не должно ждать. –

ответ

3

Просто добавьте больше оперативной памяти. Достаточно ОЗУ для хранения всей базы данных. Вы будете удивлены, насколько быстро ваш неэффективный скрипт будет летать. Память прощает много ошибок масштабирования базы данных.

+0

Эта логика доходит до сих пор. У нас есть несколько веб-приложений, работающих на сервере с 128 ГБ оперативной памяти, 32 ядрах и т. Д. Но даже этого недостаточно для хранения всего хранилища данных. – cbmeeks

4

Вы можете попробовать MySQL Proxy, что было бы простым способом разделить запросы без изменения приложения.

+0

Это то, что я сейчас изучаю. Благодарю. –

0

Я знаю, что это было задано давно, но я хотел бы поделиться тем, что я испытал, в случае, если это может помочь кому угодно.

Если у вас возникли проблемы с блокировкой таблиц и зная, что механизм хранения по умолчанию для phpbb в этот день был MyISAM, взглянули ли вы на перемещение в механизм хранения InnoDB?

Просто узнайте, какие таблицы чаще всего заблокированы, и конвертируйте их в InnoDB. Таблица сеансов является первым кандидатом здесь, хотя вы можете захотеть взглянуть на другие оптимизации (например, хранить данные сеанса только в memcache или что-то еще), если это ваше основное узкое место.